Refracting. Instead of the basic while loop, a for loop
This commit is contained in:
parent
3d1a9d7a8b
commit
7bd154691e
82
main.py
82
main.py
|
@ -1,12 +1,9 @@
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
|
||||||
max_nam = 10
|
max_nam = 10
|
||||||
guess_num = 3
|
guess_num = 3
|
||||||
|
|
||||||
|
|
||||||
def create_secret_num(guess_num):
|
def create_secret_num(guess_num):
|
||||||
"""Создание случайного числа"""
|
|
||||||
digits = list('0123456789')
|
digits = list('0123456789')
|
||||||
random.shuffle(digits)
|
random.shuffle(digits)
|
||||||
return ''.join(digits[:guess_num])
|
return ''.join(digits[:guess_num])
|
||||||
|
@ -15,53 +12,42 @@ def attempt_check(attemt):
|
||||||
clue = []
|
clue = []
|
||||||
for i in range(len(attemt)):
|
for i in range(len(attemt)):
|
||||||
|
|
||||||
if secret_num[i] == attemt[i]:
|
if attemt[i] == attemt[i]:
|
||||||
clue.append("Fermi")
|
clue.append("Fermi")
|
||||||
if attemt[i] in secret_num:
|
if attemt[i] in attemt:
|
||||||
clue.append("Pico")
|
clue.append("Pico")
|
||||||
return ''.join(clue) if clue else 'Bagle'
|
return ' '.join(clue) if clue else 'Bagle'
|
||||||
|
|
||||||
|
def game():
|
||||||
|
secret_num = create_secret_num(guess_num)
|
||||||
|
print("I meade a number.")
|
||||||
|
attemt_num = 1
|
||||||
|
|
||||||
|
while max_nam >= attemt_num:
|
||||||
|
|
||||||
|
attemt = ''
|
||||||
|
while len(attemt) != guess_num or not attemt.isdecimal():
|
||||||
|
print(f"Attemt № {attemt_num}") # Вывод информации о том, сколько попыток сделал игрок
|
||||||
|
attemt = input("> ")
|
||||||
|
|
||||||
|
if secret_num == attemt:
|
||||||
|
print("You win!")
|
||||||
|
break
|
||||||
|
|
||||||
|
print(attempt_check(attemt)) # А вот и подсказка
|
||||||
|
|
||||||
|
attemt_num += 1
|
||||||
|
print("You're done trying")
|
||||||
|
print(f"The hiden numbers is {secret_num}")
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
for attempt_num in range(1, max_nam + 1):
|
while True:
|
||||||
"""Основной цикл для прекращения или повторения игры"""
|
game()
|
||||||
secret_num = create_secret_num(guess_num) # Создание случайного числа
|
answer = input("You want repeat the game?> ").lower()
|
||||||
print("I meade a number.") # По сути, не нужное оповещение о создание числа(Создано для игрока)
|
|
||||||
attemt_num = 1 # Номер попытки игрока
|
|
||||||
|
|
||||||
while max_nam >= attemt_num:
|
|
||||||
"""Цикл, за счет которого осуществляются попытки"""
|
|
||||||
attemt = '' # Попытка игрока
|
|
||||||
|
|
||||||
while len(attemt) != guess_num or not attemt.isdecimal():
|
|
||||||
"""Цикл для ввода попытки. Его можно было бы реализовать через if-elif,
|
|
||||||
но тогда у игрока была бы одна попытка."""
|
|
||||||
print(f"Attemt № {attemt_num}") # Вывод информации о том, сколько попыток сделал игрок
|
|
||||||
attemt = input("> ")
|
|
||||||
|
|
||||||
"""Часть игры, где происходит проверка введенного игроком числа с загаданным(секретным) числом"""
|
|
||||||
|
|
||||||
if secret_num == attemt:
|
|
||||||
"""Проверка, полностью ли совпало число.
|
|
||||||
Её нельзя впихнуть в функцию attempt_check(), так как здесь есть ""break"""
|
|
||||||
print("You win!")
|
|
||||||
break
|
|
||||||
|
|
||||||
print(attempt_check(attemt)) # А вот и подсказка
|
|
||||||
|
|
||||||
attemt_num += 1
|
|
||||||
|
|
||||||
if max_nam < attemt_num:
|
|
||||||
# Финишная прямая. Говорим комплементы, называем секретное число и спрашиваем, хочет ли игрок продолжить
|
|
||||||
print("You're done trying") # У тебя закончились попытки
|
|
||||||
print(f"The hiden numbers is {secret_num}.You want repeat the game? 'yes' or 'no'")
|
|
||||||
answer = input("> ")
|
|
||||||
if answer == 'no':
|
if answer == 'no':
|
||||||
print("Thanks for playing")
|
print("Thanks for playing")
|
||||||
break
|
break
|
||||||
else:
|
|
||||||
print("You want repeat the game? 'yes' or 'no'")
|
if __name__ == '__main__':
|
||||||
answer = input("> ")
|
main()
|
||||||
if answer == 'no':
|
|
||||||
print("Thanks for playing")
|
|
||||||
break
|
|
Loading…
Reference in New Issue