Deim-Sha/frontend-project-lvl1

View on GitHub
src/games/progression.js

Summary

Maintainability
A
0 mins
Test Coverage
import { cons } from 'hexlet-pairs';
import playGame from '..';
import getRandomInteger from '../utils';

const ruleProgression = 'What number is missing in the progression?';
const progressionLength = 10;

const createArithmeticProgression = (start, step, length) => {
  const arithmeticProgression = [];
  for (let i = 0; i < length; i += 1) {
    const progressionMember = start + step * i;
    arithmeticProgression.push(progressionMember);
  }
  return arithmeticProgression;
};

const createQuestionAnswer = () => {
  const firstMember = getRandomInteger();
  const diff = getRandomInteger();
  const progression = createArithmeticProgression(firstMember, diff, progressionLength);
  const hiddenMemberIndex = getRandomInteger(0, progression.length - 1);
  const correctAnswer = progression[hiddenMemberIndex].toString();
  progression.splice(hiddenMemberIndex, 1, '..');
  const question = progression.join(' ');
  return cons(question, correctAnswer);
};

export default () => playGame(ruleProgression, createQuestionAnswer);