neolite/project-lvl1-s208

View on GitHub
src/games/gcd.js

Summary

Maintainability
A
0 mins
Test Coverage
import { getRandom, makeGame } from '..';

const calcGCD = (n, m) => {
  if (m > 0) {
    const k = n % m;
    return calcGCD(m, k);
  }
  return Math.abs(n);
};

const gcdGame = () => {
  const firstNumber = getRandom();
  const secondNumber = getRandom();
  const answer = calcGCD(firstNumber, secondNumber);
  return {
    question: `${firstNumber} ${secondNumber}`,
    answer: String(answer),
  };
};

const gameWrapper = () => {
  makeGame(gcdGame, 'Find the greatest common divisor of given numbers.');
};

export default gameWrapper;