Skip to content

Commit

Permalink
Correct the edits for project No. 1
Browse files Browse the repository at this point in the history
  • Loading branch information
Dmitry-Perexozhev committed Nov 30, 2023
1 parent 874a0db commit 5fa152e
Show file tree
Hide file tree
Showing 12 changed files with 94 additions and 57 deletions.
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@

### Installation
Execute in a terminal in the root directory:
python3 -m pip install dist/hexlet_code-0.1.0-py3-none-any.whl
or command: make package-install
python3 -m pip install dist/hexlet_code-0.1.0-py3-none-any.whl\
or command: make package-install\
asciinema installation (https://asciinema.org/a/Pt2fuw4TDiNtm143Nneowmt73)

p.s. On my system there is a conflict between Ubuntu and pip so I activate Poetry,
you may not need to do this

### How it works
To start the game you need to execute one of the commands:
1. brain-even
1. brain-even\
asciinema game brain-even (https://asciinema.org/a/ai5jn7A3lrUcdwqXUyDEqt4O9)
2. brain-calc
2. brain-calc\
asciinema game brain-calc (https://asciinema.org/a/5zjMH4tBlli6rwRq09TIg6QSe)
3. brain-gcd
3. brain-gcd\
asciinema game brain-gcd (https://asciinema.org/a/JrAlVYJD3mrWSkFc0ZK8FjZ4k)
4. brain-progression
4. brain-progression\
asciinema game brain-progression (https://asciinema.org/a/eZD5xzdn7lVDwY798sVaUWOyg)
5. brain-prime
5. brain-prime\
asciinema game brain-prime (https://asciinema.org/a/adu91gryjLGUSof43guMI5htV)
12 changes: 5 additions & 7 deletions brain_games/engine.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
import prompt


def welcome_user():
def engine(brain_game):
print('Welcome to the Brain Games!')
global name
name = prompt.string('May I have your name? ')
print(f'Hello, {name}!')


def engine(brain_game):
print(brain_game.DESCRIPTION)
count_correct_answers = 0
while count_correct_answers < 3:
correct_answer = brain_game()
correct_answer = brain_game.generate_round()
user_answer = prompt.string('Your answer: ')
if user_answer == correct_answer:
print('Correct!')
count_correct_answers += 1
count_correct_answers == 3
else:
print(f"'{user_answer}' is wrong answer ;(."
f" Correct answer was '{correct_answer}'.")
print(f"Let's try again, {name}!")
break
if count_correct_answers == 3:
else:
print(f"Congratulations, {name}!")
26 changes: 21 additions & 5 deletions brain_games/games/game_calc.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,33 @@
from random import randint, choice

DESCRIPTION = 'What is the result of the expression?'

def game_calc():
print('What is the result of the expression?')

def add(x, y):
return x + y


def multiply(x, y):
return x * y


def subtraction(x, y):
return x - y


def generate_round():
first_random_number = randint(1, 20)
second_random_number = randint(1, 20)
random_operation = choice('+-*')
if random_operation == '+':
correct_answer = str(first_random_number + second_random_number)
correct_answer =\
str(add(first_random_number, second_random_number))
elif random_operation == '-':
correct_answer = str(first_random_number - second_random_number)
correct_answer =\
str(subtraction(first_random_number, second_random_number))
elif random_operation == '*':
correct_answer = str(first_random_number * second_random_number)
correct_answer =\
str(multiply(first_random_number, second_random_number))
print(f'Question: {first_random_number} {random_operation} '
f'{second_random_number}')
return correct_answer
11 changes: 8 additions & 3 deletions brain_games/games/game_even.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
from random import randint

DESCRIPTION = 'Answer "yes" if the number is even, otherwise answer "no".'

def game_even():
print('Answer "yes" if the number is even, otherwise answer "no".')

def is_even(number):
return number % 2 == 0


def generate_round():
random_number = randint(1, 100)
correct_answer = ('yes', 'no')[random_number % 2]
correct_answer = 'yes' if is_even(random_number) else 'no'
print(f'Question: {random_number}')
return correct_answer
18 changes: 12 additions & 6 deletions brain_games/games/game_gcd.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
from random import randint

DESCRIPTION = 'Find the greatest common divisor of given numbers.'

def game_gcd():
print('Find the greatest common divisor of given numbers.')

def find_divisors(number):
divisors = [i for i in range(1, number + 1) if number % i == 0]
return divisors


def generate_round():
first_random_number = randint(1, 100)
second_random_number = randint(1, 100)
correct_answer = 1
for i in range(2, min(first_random_number, second_random_number) + 1):
if first_random_number % i == 0 and second_random_number % i == 0:
correct_answer = i
divisors_of_first_random_number = set(find_divisors(first_random_number))
divisors_of_second_random_number = set(find_divisors(second_random_number))
correct_answer =\
max(divisors_of_first_random_number & divisors_of_second_random_number)
print(f'Question: {first_random_number} {second_random_number}')
return str(correct_answer)
25 changes: 17 additions & 8 deletions brain_games/games/game_prime.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,22 @@
from random import randint

DESCRIPTION = 'Answer "yes" if given number is prime. Otherwise answer "no".'

def game_prime():
print('Answer "yes" if given number is prime. Otherwise answer "no".')
random_number = randint(3, 100)
correct_answer = 'yes'
for i in range(2, random_number):
if random_number % i == 0:
correct_answer = 'no'
break

def is_prime(number):
if number >= 2:
if number == 2:
return True
divider = 2
while number % divider != 0:
divider += 1
return number == divider
else:
return False


def generate_round():
random_number = randint(2, 100)
correct_answer = 'yes' if is_prime(random_number) else 'no'
print(f'Question: {random_number}')
return correct_answer
20 changes: 14 additions & 6 deletions brain_games/games/game_progression.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
from random import randint

DESCRIPTION = 'What number is missing in the progression?'

def game_progression():
print('What number is missing in the progression?')

def get_sequence(start, step, number_of_steps):
sequence = []
for i in range(number_of_steps):
sequence.append(start + step * i)
return sequence


def generate_round():
random_start_number = randint(1, 20)
random_step = randint(1, 10)
random_sequence = []
for i in range(10):
random_sequence.append(random_start_number + random_step * i)
random_index_of_seq = randint(0, 9)
number_of_steps = 10
random_sequence =\
get_sequence(random_start_number, random_step, number_of_steps)
random_index_of_seq = randint(0, number_of_steps - 1)
correct_answer = str(random_sequence[random_index_of_seq])
random_sequence[random_index_of_seq] = '..'
print('Question:', *random_sequence)
Expand Down
5 changes: 2 additions & 3 deletions brain_games/scripts/brain_calc.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
#!/usr/bin/env python3
from brain_games.games.game_calc import game_calc
from brain_games.engine import welcome_user, engine
from brain_games.games import game_calc
from brain_games.engine import engine


def main():
welcome_user()
engine(game_calc)


Expand Down
5 changes: 2 additions & 3 deletions brain_games/scripts/brain_even.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
#!/usr/bin/env python3
from brain_games.games.game_even import game_even
from brain_games.engine import welcome_user, engine
from brain_games.games import game_even
from brain_games.engine import engine


def main():
welcome_user()
engine(game_even)


Expand Down
5 changes: 2 additions & 3 deletions brain_games/scripts/brain_gcd.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
#!/usr/bin/env python3
from brain_games.games.game_gcd import game_gcd
from brain_games.engine import welcome_user, engine
from brain_games.games import game_gcd
from brain_games.engine import engine


def main():
welcome_user()
engine(game_gcd)


Expand Down
5 changes: 2 additions & 3 deletions brain_games/scripts/brain_prime.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
#!/usr/bin/env python3
from brain_games.games.game_prime import game_prime
from brain_games.engine import welcome_user, engine
from brain_games.games import game_prime
from brain_games.engine import engine


def main():
welcome_user()
engine(game_prime)


Expand Down
5 changes: 2 additions & 3 deletions brain_games/scripts/brain_progression.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
#!/usr/bin/env python3
from brain_games.games.game_progression import game_progression
from brain_games.engine import welcome_user, engine
from brain_games.games import game_progression
from brain_games.engine import engine


def main():
welcome_user()
engine(game_progression)


Expand Down

0 comments on commit 5fa152e

Please sign in to comment.