Skip to content

Commit d4e79d2

Browse files
author
daria-z
committed
add gamesWrapper & modify brain-calculator
1 parent e6622b7 commit d4e79d2

File tree

4 files changed

+33
-3
lines changed

4 files changed

+33
-3
lines changed

src/cli.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import userGreeting from './games/userGreeting.js';
22
import evenChecking from './games/evenChecking.js';
3-
import calculator from './games/calculator.js';
3+
import calculator from './games/brain-calculator.js';
44
import gcd from './games/gcd.js';
55

66
export { userGreeting, evenChecking, calculator, gcd };

src/games/brain-calculator.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import gamesWrapper from "./utils/gamesWrapper.js";
2+
import { rule, innerlogic } from "./gamesLogic/calculator.js";
3+
4+
export default () => {
5+
gamesWrapper(rule, innerlogic);
6+
};
7+

src/games/gamesLogic/calculator.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import generateRandomNumber from "../utils/generateRandomNumber.js";
2+
import generateOperator from "../utils/generateOperator.js";
3+
4+
export const rule = 'What is the result of the expression?';
5+
6+
export const innerlogic = () => {
7+
const number1 = generateRandomNumber(1, 10);
8+
const number2 = generateRandomNumber(1, 10);
9+
const symbol = generateOperator();
10+
const question = `${number1} ${symbol} ${number2}`;
11+
const answer = eval(question);
12+
13+
return [question, answer];
14+
}
15+
16+

src/games/utils/gamesWrapper.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import readlineSync from 'readline-sync';
22

3-
export default (rules, gameLogic) => {
3+
export default (rules, logic) => {
44
console.log('Welcome to the Brain Games!');
55

66
const name = readlineSync.question('May I have your name? ');
@@ -10,8 +10,15 @@ export default (rules, gameLogic) => {
1010
console.log(rules);
1111

1212
for (let i = 1; i <= 3; i += 1) {
13+
const [question, correctAnswer] = logic();
14+
console.log(`Question: ${question}`);
15+
const userAnswer = readlineSync.question('Your answer: ');
1316

14-
gameLogic(name);
17+
if (userAnswer !== correctAnswer.toString()) {
18+
console.log(`'${userAnswer}' is wrong answer ;( .Correct answer was '${correctAnswer}'.`);
19+
console.log(`Let's try again, ${name}!`);
20+
return false;
21+
}
1522

1623
console.log('Correct!');
1724
}

0 commit comments

Comments
 (0)