dzencot/js_l1_brain_games-s12

View on GitHub
src/index.js

Summary

Maintainability
A
0 mins
Test Coverage
// @flow
/* eslint-disable no-console */

import readlineSync from 'readline-sync';

export default (ruleGame, getCorrectAnswer, getQuestion, viewQuestion) => {
  console.log('Welcome to the Brain Games!');
  console.log(ruleGame);
  const nameUser = readlineSync.question('May I have your name? ');
  console.log(`Hello, ${nameUser}`);

  const maxCurrent = 3;
  const iterFunc = (count) => {
    if (count >= maxCurrent) {
      console.log(`Congratulations, ${nameUser}`);
      return true;
    }
    const question = getQuestion();
    const viewQ = viewQuestion(question);
    console.log(`Question: ${viewQ}`);
    const answer = readlineSync.question('Your answer: ');
    const correctAnswer = getCorrectAnswer(question);
    if (answer === correctAnswer) {
      console.log('Correct!');
      const newCount = count + 1;
      return iterFunc(newCount);
    }
    console.log(`${answer} is wrong answer ;(. Correct answer was ${correctAnswer}.\nLet's try again, ${nameUser}!`);
    return iterFunc(count);
  };
  return iterFunc(0);
};