Skip to content

Commit ef1af35

Browse files
committed
refactor: move get_answer_and_right_answer from each game to utils
1 parent 8b5bf73 commit ef1af35

File tree

7 files changed

+23
-44
lines changed

7 files changed

+23
-44
lines changed

brain_games/games/calc.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
import random
22

3-
from brain_games.scripts.utils import ask_answer
4-
5-
6-
def get_answer_and_right_answer(expression: str) -> tuple:
7-
answer = ask_answer()
8-
right_answer = get_right_answer(expression)
9-
return (answer, right_answer)
10-
113

124
def get_question_msg() -> str:
135
left_num = random.randint(0, 100)

brain_games/games/even.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,8 @@
11
import random
22

3-
from brain_games.scripts.utils import ask_answer
43

5-
6-
def get_answer_and_right_answer(number: int) -> tuple:
7-
answer = ask_answer()
8-
right_answer = 'yes' if is_even(number) else 'no'
9-
return (answer, right_answer)
10-
11-
12-
def get_question_msg() -> int:
13-
return random.randint(0, 100)
4+
def get_question_msg() -> str:
5+
return str(random.randint(0, 100))
146

157

168
def is_even(number: int) -> bool:
@@ -20,5 +12,9 @@ def is_even(number: int) -> bool:
2012
return False
2113

2214

15+
def get_right_answer(expression: str) -> str:
16+
return 'yes' if is_even(int(expression)) else 'no'
17+
18+
2319
def get_msg_game_rules() -> str:
2420
return "Answer \"yes\" if the number is even, otherwise answer \"no\"."

brain_games/games/gcd.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
import random
22

3-
from brain_games.scripts.utils import ask_answer
4-
5-
6-
def get_answer_and_right_answer(expression: str) -> tuple:
7-
answer = ask_answer()
8-
right_answer = get_right_answer(expression)
9-
return (answer, right_answer)
10-
113

124
def get_question_msg() -> str:
135
left_num = random.randint(0, 100)

brain_games/games/prime.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
import random
22

3-
from brain_games.scripts.utils import ask_answer
4-
5-
6-
def get_answer_and_right_answer(expression: str) -> tuple:
7-
answer = ask_answer()
8-
right_answer = get_right_answer(expression)
9-
return (answer, right_answer)
10-
113

124
def get_question_msg() -> str:
135
number = random.randint(0, 100)

brain_games/games/progression.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,8 @@
11
import random
22

3-
from brain_games.scripts.utils import ask_answer
4-
53
hidden_number: str
64

75

8-
def get_answer_and_right_answer(expression: str) -> tuple:
9-
answer = ask_answer()
10-
right_answer = get_right_answer(expression)
11-
return (answer, right_answer)
12-
13-
146
def get_question_msg() -> str:
157
length = random.randint(5, 10)
168
position = random.randint(0, length - 1)

brain_games/scripts/engine.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
from brain_games.scripts.utils import greet_and_ask_name
1+
from brain_games.scripts.utils import (
2+
get_answer_and_right_answer,
3+
greet_and_ask_name,
4+
)
25

36

47
def engine_run(game) -> None:
@@ -7,7 +10,10 @@ def engine_run(game) -> None:
710
for i in range(3):
811
question_msg = game.get_question_msg()
912
print(f"Question: {question_msg}")
10-
answer, right_answer = game.get_answer_and_right_answer(question_msg)
13+
answer, right_answer = get_answer_and_right_answer(
14+
game.get_right_answer,
15+
question_msg
16+
)
1117
if answer == right_answer:
1218
print('Correct!')
1319
else:

brain_games/scripts/utils.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,12 @@ def greet_and_ask_name() -> str:
1010

1111
def ask_answer() -> str:
1212
return prompt.string("Your answer: ")
13+
14+
15+
def get_answer_and_right_answer(
16+
get_right_answer: callable,
17+
expression: str
18+
) -> tuple:
19+
answer = ask_answer()
20+
right_answer = get_right_answer(expression)
21+
return (answer, right_answer)

0 commit comments

Comments
 (0)