-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgame_guess_num.py
88 lines (73 loc) · 2.87 KB
/
game_guess_num.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# Алгоритм игры
# создаем список чисел
# случайно загадываем число
# просим ввести число
# проверка это число или нет
# угадали
# неугадали
# жарко холодно
# Вы угадали число за н попыток
import random
MIN_NUMBER = 10
MAX_NUMBER = 100
class Game():
"""Игра угадай целое число"""
def __init__(self):
"""Инициализация параметров"""
self.number_range = random.randint(MIN_NUMBER, MAX_NUMBER)
self.win_num = random.randint(0, self.number_range)
self.try_count = 0
# print('win_num = ', self.win_num) # Число для победы
def start(self):
"""Запуск игры"""
print('---------------------------------------------')
print(f'Угадайте целое число от 0 до {self.number_range}!')
print('---------------------------------------------')
while True:
num = self.get_number()
if num is None:
continue
if self.is_win(num):
self.end_game()
break
def get_number(self):
"""Ввод целого числа и проверка"""
try:
print()
num = int(input('Введите число: '))
self.try_count += 1
except ValueError:
print('Это не число, попробуйте снова.')
return None
else:
return num
def is_win(self, num):
"""Проверка условия победы"""
if num not in range(self.number_range + 1):
print()
print(f'Нужно ввести число от 0 до {self.number_range}')
return False
if num != self.win_num:
print('Не угадали, попробуйте еще.')
print(self.hint(num))
return False
return True
def hint(self, num):
"""Подсказка для игрока"""
if abs(num - self.win_num) > 6:
ampl = 'намного'
else:
ampl = 'чуть'
if num > self.win_num:
return f'Подсказка: число должно быть {ampl} меньше'
else:
return f'Подсказка: число должно быть {ampl} больше'
def end_game(self):
"""Это конец игры"""
print('----------------------------------------------')
print((f'Поздравляем! Вы угадали число {self.win_num}'
f' за {self.try_count} попыток!'))
print('----------------------------------------------')
if __name__ == '__main__':
game = Game()
game.start()