Repository navigation
Expand file tree
/
Copy pathbagels.py
More file actions
executable file
·66 lines (57 loc) · 2.58 KB
/
Copy pathbagels.py
File metadata and controls
executable file
·66 lines (57 loc) · 2.58 KB
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
import random
NUM_DIGITS = 3
MAX_GUESS = 10
def get_secret_num():
# Возвращает строку уникальных случайных цифр, длина которой MAX_DIGITS
numbers = list(range(10))
random.shuffle(numbers)
secret_num = ''
for i in range(NUM_DIGITS):
secret_num += str(numbers[i])
return secret_num
def get_clues(guess, secret_num):
# Возвращает строку с подсказками "Тепло", "Горячо" и "Холодно"
if guess == secret_num:
return 'Вы угадали!'
clues = []
for i in range(len(guess)):
if guess[i] == secret_num[i]:
clues.append('Горячо')
elif guess[i] in secret_num:
clues.append('Тепло')
if len(clues) == 0:
return 'Холодно'
clues.sort()
return ' '.join(clues)
def is_only_digits(num):
# Возвращает значение True, если num- строка, состоящая только из цифр, иначе возвращает False
if num == '':
return False
for i in num:
if i not in '0 1 2 3 4 5 6 7 8 9'.split():
return False
return True
print('Я загадаю %s-х значное число, которое вы должны отгадать.' % (NUM_DIGITS))
print('Я дам несколько подсказок...')
print('Когда я говорю: Это означает:')
print('''Холодно Ни одна цифра не отгадана
Тепло Одна цирфа отгадана, но не отгадана ее позиция
Горячо Одна цирфа и ее позиция отгаданы''')
while True:
secret_num = get_secret_num()
print('Итак, я загадал число. У вас есть %s попыток, чтобы отгадать его.' % (MAX_GUESS))
guesses_taken = 1
while guesses_taken <= MAX_GUESS:
guess = ''
while len(guess) != NUM_DIGITS or not is_only_digits(guess):
print('Попытка №%s:' % (guesses_taken))
guess = input()
print(get_clues(guess, secret_num))
guesses_taken += 1
if guess == secret_num:
break
if guesses_taken > MAX_GUESS:
print('Попыток больше не осталось. Я загадал число %s.' % (secret_num))
print('Хотите сыграть еще раз?(да/нет)')
if not input().lower().startswith('д'):
break