Skip to content

Commit a84e51f

Browse files
committed
Step09 fix flow
1 parent ffad876 commit a84e51f

File tree

11 files changed

+79
-33
lines changed

11 files changed

+79
-33
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ startBalance:
1919
startProgress:
2020
npm run babel-node -- src/bin/brain-progression.js
2121

22+
startPrime:
23+
npm run babel-node -- src/bin/brain-prime.js
24+
2225
publish:
2326
npm publish
2427

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"brain-calc": "dist/bin/brain-calc.js",
1010
"brain-gcd": "dist/bin/brain-gcd.js",
1111
"brain-balance": "dist/bin/brain-balance.js",
12-
"brain-progress": "dist/bin/brain-progression.js"
12+
"brain-progress": "dist/bin/brain-progression.js",
13+
"brain-progress": "dist/bin/brain-prime.js"
1314
},
1415
"scripts": {
1516
"build": "NODE_ENV=production babel src --out-dir dist --source-maps inline",

src/bin/brain-prime.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env node
2+
3+
import runPrimeGame from '../games/prime';
4+
5+
runPrimeGame();

src/games/balance.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const correctAnswer = (expression) => {
2424
return Number(balanceNumber(arrayExp).join(''));
2525
};
2626

27-
export default () => {
28-
gameGo(ruleGcdGame, questionGcdGame, correctAnswer);
29-
};
27+
28+
const exp = () => [questionGcdGame, correctAnswer];
29+
30+
export default () => gameGo(ruleGcdGame, exp);

src/games/calc.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,6 @@ const calculation = (expression) => {
4747
};
4848

4949

50-
export default () => {
51-
gameGo(ruleCalcGame, questionCalc, calculation);
52-
};
50+
const exp = () => [questionCalc, calculation];
51+
52+
export default () => gameGo(ruleCalcGame, exp);

src/games/even.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
import { randomNumber, gameGo } from '..';
22

3-
const ruleEvenGame = 'Answer "yes" if number even otherwise answer "no".';
3+
const ruleEvenGame = 'Answer "yes" if number prime otherwise answer "no".';
44

55
const questionEvenGame = () => randomNumber(1, 999);
66

7-
const correctAnswer = (num) => {
8-
if (num % 2 === 0) {
7+
const isNum = (number) => {
8+
if (number % 2 === 0) {
99
return 'yes';
1010
}
1111
return 'no';
1212
};
1313

14-
export default () => {
15-
gameGo(ruleEvenGame, questionEvenGame, correctAnswer);
16-
};
14+
const correctAnswer = num => isNum(num);
15+
16+
const exp = () => [questionEvenGame, correctAnswer];
17+
18+
export default () => gameGo(ruleEvenGame, exp);

src/games/gcd.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ const correctAnswer = (expression) => {
2323
return gcd(number1, number2);
2424
};
2525

26-
export default () => {
27-
gameGo(ruleGcdGame, questionGcdGame, correctAnswer);
28-
};
26+
const exp = () => [questionGcdGame, correctAnswer];
27+
28+
export default () => gameGo(ruleGcdGame, exp);

src/games/prime.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
2+
import { randomNumber, gameGo } from '..';
3+
4+
const rulePrimeGame = 'Answer "yes" if number prime otherwise answer "no".';
5+
6+
const findDivisor = (number, test) => {
7+
if (test ** 2 > number) {
8+
return number;
9+
} if (number % test === 0) {
10+
return test;
11+
}
12+
return findDivisor(number, test + 1);
13+
};
14+
15+
const isPrime = (num) => {
16+
if (num === findDivisor(num, 2)) {
17+
return 'yes';
18+
}
19+
return 'no';
20+
};
21+
22+
23+
const questionPrimeGame = () => randomNumber(1, 999);
24+
25+
const correctAnswer = num => isPrime(num);
26+
27+
28+
const exp = () => [questionPrimeGame, correctAnswer];
29+
30+
export default () => gameGo(rulePrimeGame, exp);

src/games/progress.js

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,24 @@ const numberStart = randomNumber(1, 50);
77
const step = randomNumber(1, 9);
88
const endRange = numberStart + (step * 10);
99
const guessIndex = randomNumber(0, 9);
10+
const progressionConst = range(numberStart, endRange, step);
11+
12+
// const progressGame = (arr, num) => {
13+
// const guessNumber = () => arr[num];
14+
// const progression = [arr.slice(0, num), '..', arr.slice(num + 1)].join(' ');
15+
// const questionProgressGame = () => progression;
16+
// return [questionProgressGame, guessNumber];
1017

1118
const progressGame = () => {
12-
const progressionConst = range(numberStart, endRange, step);
13-
const guessNumber = progressionConst[guessIndex];
14-
const progression = progressionConst;
15-
progression[guessIndex] = '..';
16-
const questionProgressGame = progression.join(' ');
19+
const guessNumber = () => progressionConst[guessIndex];
20+
const progression = [progressionConst.slice(0, guessIndex), '..', progressionConst.slice(guessIndex + 1)].join(' ');
21+
const questionProgressGame = () => progression;
1722
return [questionProgressGame, guessNumber];
1823
};
1924

20-
const [a, b] = progressGame();
21-
22-
const questionProgressGame = () => a;
23-
24-
const correctAnswer = () => b;
25+
// const exp = () => {
26+
// progressGame(progressionConst, guessIndex);
27+
// };
28+
// не до делал чтобы вызвать функция со значениями.
2529

26-
27-
export default () => {
28-
gameGo(ruleProgressGame, questionProgressGame, correctAnswer);
29-
};
30+
export default () => gameGo(ruleProgressGame, progressGame);

src/games/test.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import { randomNumber, gameGo } from '..';
22

33
const ruleTestGame = 'It\'s a simple game, !!!!! enter the number';
4-
54
const questionTest = () => randomNumber(1, 999);
65

76
const correctAnswer = num => Number(num);
87

8+
const exp = () => [questionTest, correctAnswer];
9+
10+
911
export default () => {
10-
gameGo(ruleTestGame, questionTest, correctAnswer);
12+
gameGo(ruleTestGame, exp);
1113
};

0 commit comments

Comments
 (0)