|
1 | | -import readlineSync from 'readline-sync'; |
2 | | -import { |
3 | | - greeting, getRandomNumber, getRandomOperator, getResult, handleAnswer, |
4 | | -} from '../../index.js'; |
| 1 | +import { getRandomNumber, getRandomOperator, getResult } from '../../index.js'; |
| 2 | +import playGame from '../gameUtils.js'; |
5 | 3 |
|
6 | | -// brain-calc |
| 4 | +// Задаем вопрос |
| 5 | +const generateQuestion = () => { |
| 6 | + const randomNumber1 = getRandomNumber(); |
| 7 | + const randomNumber2 = getRandomNumber(); |
| 8 | + const randomOperator = getRandomOperator(); |
| 9 | + const example = `${randomNumber1} ${randomOperator} ${randomNumber2}`; |
| 10 | + const correctAnswer = getResult(randomNumber1, randomOperator, randomNumber2); |
| 11 | + return { question: example, correctAnswer }; |
| 12 | +}; |
| 13 | + |
| 14 | +// Задаем сообшения |
| 15 | +const gameDescription = 'What is the result of the expression?'; |
| 16 | + |
| 17 | +const generateIncorrectMessageEvenOdd = (userAnswer, correctAnswer, userName) => `'${userAnswer}' is wrong answer ;(. Correct answer was '${correctAnswer}'.\nLet's try again, ${userName}!`; |
| 18 | + |
| 19 | +// Запускаем игру |
7 | 20 | const playGameCalc = () => { |
8 | | - // Приветствуем |
9 | | - const userName = greeting(); |
10 | | - // Поясняем смысл |
11 | | - console.log('What is the result of the expression?'); |
12 | | - // Цикл игры |
13 | | - let correctAnswersCount = 0; |
14 | | - while (correctAnswersCount < 3) { |
15 | | - // Получаем пример |
16 | | - const randomNumber1 = getRandomNumber(); |
17 | | - const randomNumber2 = getRandomNumber(); |
18 | | - const randomOperator = getRandomOperator(); |
19 | | - const example = `${randomNumber1} ${randomOperator} ${randomNumber2}`; |
20 | | - console.log(`Question: ${example}`); |
21 | | - // Получаем ответ пользователя |
22 | | - const userAnswer = readlineSync.question('Your answer: '); |
23 | | - // Вычисляем ответ |
24 | | - const correctAnswer = String(getResult(randomNumber1, randomOperator, randomNumber2)); |
25 | | - // Сверяем результаты |
26 | | - const incorrectMessage = `'${userAnswer}' is wrong answer ;(. Correct answer was '${correctAnswer}'.\nLet's try again, ${userName}!`; |
27 | | - const result = handleAnswer( |
28 | | - userAnswer, |
29 | | - correctAnswer, |
30 | | - userName, |
31 | | - correctAnswersCount, |
32 | | - incorrectMessage, |
33 | | - ); |
34 | | - correctAnswersCount = result.correctAnswersCount; |
35 | | - // Закрываем цикл |
36 | | - if (result.finished) { |
37 | | - break; |
38 | | - } |
39 | | - } |
| 21 | + playGame(gameDescription, generateQuestion, generateIncorrectMessageEvenOdd); |
40 | 22 | }; |
41 | 23 |
|
42 | 24 | export default playGameCalc; |
0 commit comments