-
Notifications
You must be signed in to change notification settings - Fork 22
/
39b_Candy_man_vs_bot.py
83 lines (69 loc) · 3.46 KB
/
39b_Candy_man_vs_bot.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
# Игра с кончетами. Дано N конфет.
# Каждый игрок за каждый ход может взять не более M конфет.
# Побеждает игрок,забравший последнюю конфету.
# man vs bot
from random import randint, choice
greeting = ('Здравствуйте! Вас приветствует игра "Забери все конфеты!" '
'Основные правила игры: '
'Нам будет дано некоторое количество конфет, '
'за один ход мы можем взять не более определённого количества, '
'о котором мы с вами договоримся. '
'Итак, начнём!')
messages = ['Ваша очередь брать конфеты', 'возьмите конфеты',
'сколько конфет возьмёте?', 'берите, не стесняйтесь', 'Ваш ход']
def introduce_players():
player1 = input('Давайте познакомися. Как Вас зовут?\n')
player2 = 'Робик'
print(f'Очень приятно, меня зовут {player2}')
return [player1, player2]
def get_rules(players):
n = int(input('Сколько конфет будем разыгрывать?\n '))
m = int(input('Сколько максимально будем брать конфет за один ход?\n '))
first = int(input(
f'{players[0]}, если хотите ходить первым, нажмите 1, если нет, любую другую клавишу\n'))
if first != 1:
first = 0
return [n, m, int(first)]
def play_game(rules, players, messages):
count = rules[2]
if rules[0] % 10 == 1 and 9 > rules[0] > 10:
letter = 'а'
elif 1 < rules[0] % 10 < 5 and 9 > rules[0] > 10:
letter = 'ы'
else:
letter = ''
while rules[0] > 0:
if not count % 2:
move = randint(1, rules[1])
print(f'Я забираю {move}')
else:
print(f'{players[0]}, {choice(messages)}')
move = int(input())
if move > rules[0] or move > rules[1]:
print(
f'Это слишком много, можно взять не более {rules[1]} конфет{letter}, у нас всего {rules[0]} конфет{letter}')
attempt = 3
while attempt > 0:
if rules[0] >= move <= rules[1]:
break
print(f'Попробуйте ещё раз, у Вас {attempt} попытки')
move = int(input())
attempt -= 1
else:
return print(f'Очень жаль, у Вас не осталось попыток. Game over!')
rules[0] = rules[0] - move
if rules[0] > 0:
print(f'Осталось {rules[0]} конфет{letter}')
else:
print('Все конфеты разобраны.')
count += 1
return players[count % 2]
print(greeting)
players = introduce_players()
rules = get_rules(players)
winer = play_game(rules, players, messages)
if not winer:
print('У нас нет победителя.')
else:
print(
f'Поздравляю! В этот раз победил {winer}! Ему достаются все конфеты!')