Skip to content

Commit d940400

Browse files
committed
add: brain_prime.py and prime.py
1 parent 4113572 commit d940400

File tree

5 files changed

+119
-0
lines changed

5 files changed

+119
-0
lines changed

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ lint:
2020
uv run ruff check brain_games/scripts/brain_calc.py
2121
uv run ruff check brain_games/scripts/brain_gcd.py
2222
uv run ruff check brain_games/scripts/brain_progression.py
23+
uv run ruff check brain_games/scripts/brain_prime.py
2324
uv run ruff check brain_games/games/even.py
2425
uv run ruff check brain_games/games/calc.py
2526
uv run ruff check brain_games/games/gcd.py
2627
uv run ruff check brain_games/games/progression.py
28+
uv run ruff check brain_games/games/prime.py
2729
uv run ruff check brain_games/utils.py
2830
uv run ruff check brain_games/engine.py

brain_games/games/prime.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import random
2+
3+
from brain_games.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+
11+
12+
def get_question_msg() -> str:
13+
number = random.randint(0, 100)
14+
return f"{number}"
15+
16+
17+
def get_right_answer(expression: str) -> str:
18+
number = int(expression)
19+
if number <= 1:
20+
return 'no'
21+
for i in range(2, int(number ** 0.5) + 1):
22+
if number % i == 0:
23+
return 'no'
24+
return 'yes'
25+
26+
27+
def get_msg_game_rules() -> str:
28+
return "Answer \"yes\" if given number is prime. Otherwise answer \"no\"."

brain_games/scripts/brain_prime.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from brain_games import engine
2+
from brain_games.games import prime
3+
4+
5+
def main() -> None:
6+
engine.engine_run(prime)
7+
8+
9+
if __name__ == '__main__':
10+
main()

brain_prime.cast

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
{"version":3,"term":{"cols":151,"rows":36,"type":"xterm-256color","version":"Konsole 25.08.0","theme":{"fg":"#17a88b","bg":"#1e2229","palette":"#000000:#b21818:#18b218:#b26818:#1818b2:#b218b2:#18b2b2:#b2b2b2:#686868:#ff5454:#54ff54:#ffff54:#5454ff:#ff54ff:#54ffff:#ffffff"}},"timestamp":1756684935,"env":{"SHELL":"/usr/bin/zsh"}}
2+
[0.08011, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
3+
[0.000384, "o", "\u001b]2;zk@gp:~/python-project-49\u0007\u001b]1;..on-project-49\u0007"]
4+
[0.002285, "o", "\u001b]7;file://gp/home/zk/python-project-49\u0007"]
5+
[0.068051, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[48;5;30m\u001b[37m\u001b[0m\u001b[37m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255mpython-project-49\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[43m\u001b[38;5;30m\u001b[0m\u001b[38;5;30m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m main \u001b[30m!2 \u001b[30m?3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b[K\u001b[100C\u001b[0m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[32m \u001b[0m\u001b[32m\u001b[40m\u001b[40m\u001b[32m✔\u001b[0m\u001b[32m\u001b[40m\u001b[40m\u001b[32m \u001b[0m\u001b[32m\u001b[40m\u001b[49m\u001b[39m\u001b[104D"]
6+
[0.000837, "o", "\u001b[?2004h"]
7+
[1.172638, "o", "asciinema rec brain_prime.cast"]
8+
[0.007625, "o", "\u001b[30D\u001b[32ma\u001b[32ms\u001b[32mc\u001b[32mi\u001b[32mi\u001b[32mn\u001b[32me\u001b[32mm\u001b[32ma\u001b[39m\u001b[5C\u001b[4mb\u001b[4mr\u001b[4ma\u001b[4mi\u001b[4mn\u001b[4m_\u001b[4mp\u001b[4mr\u001b[4mi\u001b[4mm\u001b[4me\u001b[4m.\u001b[4mc\u001b[4ma\u001b[4ms\u001b[4mt\u001b[24m"]
9+
[0.833069, "o", "\u001b[30D\u001b[32mb\u001b[32mr\u001b[32ma\u001b[32mi\u001b[32mn\u001b[32m-\u001b[32mp\u001b[32mr\u001b[32mi\u001b[39mme \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[24m \u001b[19D"]
10+
[0.002297, "o", "\b\b\b\u001b[32mi\u001b[32mm\u001b[32me\u001b[39m"]
11+
[0.506376, "o", "\u001b[?2004l\r\r\n"]
12+
[0.002924, "o", "\u001b]2;brain-prime\u0007\u001b]1;\u0007"]
13+
[0.026752, "o", "Welcome to the Brain Games!\r\nMay I have your name? "]
14+
[1.376265, "o", "k"]
15+
[0.126236, "o", "i"]
16+
[0.319352, "o", "r"]
17+
[0.343743, "o", "\r\n"]
18+
[0.000033, "o", "Hello, kir! \r\nAnswer \"yes\" if given number is prime. Otherwise answer \"no\".\r\n"]
19+
[0.000069, "o", "Question: 53\r\n"]
20+
[0.000012, "o", "Your answer: "]
21+
[2.228442, "o", "y"]
22+
[0.182231, "o", "e"]
23+
[0.149655, "o", "s"]
24+
[0.732663, "o", "\r\n"]
25+
[0.000082, "o", "Correct!\r\n"]
26+
[0.000007, "o", "Question: 5\r\n"]
27+
[0.000055, "o", "Your answer: "]
28+
[2.319345, "o", "y"]
29+
[0.123448, "o", "e"]
30+
[0.148445, "o", "s"]
31+
[0.6469, "o", "\r\n"]
32+
[0.000031, "o", "Correct!\r\nQuestion: 70\r\n"]
33+
[0.000037, "o", "Your answer: "]
34+
[1.904356, "o", "n"]
35+
[0.169814, "o", "o"]
36+
[0.776549, "o", "\r\n"]
37+
[0.000011, "o", "Correct!\r\n"]
38+
[0.000017, "o", "Congratulations, kir!\r\n"]
39+
[0.006305, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
40+
[0.000357, "o", "\u001b]2;zk@gp:~/python-project-49\u0007\u001b]1;..on-project-49\u0007"]
41+
[0.003178, "o", "\u001b]7;file://gp/home/zk/python-project-49\u0007"]
42+
[0.027962, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[48;5;30m\u001b[37m\u001b[0m\u001b[37m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255mpython-project-49\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[43m\u001b[38;5;30m\u001b[0m\u001b[38;5;30m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m main \u001b[30m!2 \u001b[30m?3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b[K\u001b[92C\u001b[0m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[32m \u001b[0m\u001b[32m\u001b[40m\u001b[40m\u001b[32m✔\u001b[0m\u001b[32m\u001b[40m\u001b[40m\u001b[32m \u001b[0m\u001b[32m\u001b[40m\u001b[40m\u001b[32m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[43m\u001b[30m 12s\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[39m\u001b[104D"]
43+
[0.000884, "o", "\u001b[?2004h"]
44+
[1.527456, "o", "brain-prime"]
45+
[0.001682, "o", "\u001b[11D\u001b[32mb\u001b[32mr\u001b[32ma\u001b[32mi\u001b[32mn\u001b[32m-\u001b[32mp\u001b[32mr\u001b[32mi\u001b[32mm\u001b[32me\u001b[39m"]
46+
[0.251291, "o", "\u001b[?2004l\r\r\n"]
47+
[0.001845, "o", "\u001b]2;brain-prime\u0007\u001b]1;\u0007"]
48+
[0.024464, "o", "Welcome to the Brain Games!\r\nMay I have your name? "]
49+
[1.834096, "o", "k"]
50+
[0.06506, "o", "i"]
51+
[0.317195, "o", "r"]
52+
[0.406825, "o", "\r\n"]
53+
[0.000068, "o", "Hello, kir! \r\n"]
54+
[0.000029, "o", "Answer \"yes\" if given number is prime. Otherwise answer \"no\".\r\n"]
55+
[0.000013, "o", "Question: 34\r\n"]
56+
[0.000045, "o", "Your answer: "]
57+
[4.415005, "o", "y"]
58+
[0.108326, "o", "e"]
59+
[0.364608, "o", "s"]
60+
[0.330789, "o", "\r\n"]
61+
[0.000149, "o", "'yes' is wrong answer ;(. Correct answer was 'no'.\r\nLet's try again, kir!\r\n"]
62+
[0.005336, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
63+
[0.000557, "o", "\u001b]2;zk@gp:~/python-project-49\u0007\u001b]1;..on-project-49\u0007"]
64+
[0.003412, "o", "\u001b]7;file://gp/home/zk/python-project-49\u0007"]
65+
[0.028186, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[48;5;30m\u001b[37m\u001b[0m\u001b[37m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255mpython-project-49\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[43m\u001b[38;5;30m\u001b[0m\u001b[38;5;30m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m main \u001b[30m!2 \u001b[30m?3\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b[K\u001b[93C\u001b[0m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[32m \u001b[0m\u001b[32m\u001b[40m\u001b[40m\u001b[32m✔\u001b[0m\u001b[32m\u001b[40m\u001b[40m\u001b[32m \u001b[0m\u001b[32m\u001b[40m\u001b[40m\u001b[32m\u001b[33m\u001b[0m\u001b[33m\u001b[40m\u001b[43m\u001b[30m 8s\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[39m\u001b[104D"]
66+
[0.000804, "o", "\u001b[?2004h"]
67+
[2.582893, "o", "e"]
68+
[0.004297, "o", "\b\u001b[1m\u001b[31me\u001b[0m\u001b[39m"]
69+
[0.000418, "o", "\b\u001b[1m\u001b[31me\u001b[0m\u001b[39m\u001b[38;5;244mxit\u001b[39m\b\b\b"]
70+
[0.142409, "o", "\b\u001b[1m\u001b[31me\u001b[1m\u001b[31mx\u001b[0m\u001b[39m"]
71+
[0.002463, "o", "\b\b\u001b[0m\u001b[32me\u001b[0m\u001b[32mx\u001b[39m"]
72+
[0.387754, "o", "\b\b\u001b[32me\u001b[32mx\u001b[32mi\u001b[39m"]
73+
[0.004511, "o", "\b\b\b\u001b[1m\u001b[31me\u001b[1m\u001b[31mx\u001b[1m\u001b[31mi\u001b[0m\u001b[39m"]
74+
[0.222126, "o", "\b\u001b[1m\u001b[31mi\u001b[1m\u001b[31mt\u001b[0m\u001b[39m"]
75+
[0.003122, "o", "\b\b\b\b\u001b[0m\u001b[32me\u001b[0m\u001b[32mx\u001b[0m\u001b[32mi\u001b[0m\u001b[32mt\u001b[39m"]
76+
[0.291013, "o", "\u001b[?2004l\r\r\n"]
77+
[0.0005, "o", "\u001b]2;exit\u0007\u001b]1;\u0007"]
78+
[0.003186, "x", "0"]

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ brain-even = "brain_games.scripts.brain_even:main"
2626
brain-calc = "brain_games.scripts.brain_calc:main"
2727
brain-gcd = "brain_games.scripts.brain_gcd:main"
2828
brain-progression = "brain_games.scripts.brain_progression:main"
29+
brain-prime = "brain_games.scripts.brain_prime:main"

0 commit comments

Comments
 (0)