Refracting. Instead of the basic while loop, a for loop

This commit is contained in:
User 2025-05-01 16:31:59 +03:00
parent 3d1a9d7a8b
commit 7bd154691e
1 changed files with 34 additions and 48 deletions

82
main.py
View File

@ -1,12 +1,9 @@
import random
max_nam = 10
guess_num = 3
def create_secret_num(guess_num):
"""Создание случайного числа"""
digits = list('0123456789')
random.shuffle(digits)
return ''.join(digits[:guess_num])
@ -15,53 +12,42 @@ def attempt_check(attemt):
clue = []
for i in range(len(attemt)):
if secret_num[i] == attemt[i]:
if attemt[i] == attemt[i]:
clue.append("Fermi")
if attemt[i] in secret_num:
if attemt[i] in attemt:
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}")
for attempt_num in range(1, max_nam + 1):
"""Основной цикл для прекращения или повторения игры"""
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():
"""Цикл для ввода попытки. Его можно было бы реализовать через 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("> ")
def main():
while True:
game()
answer = input("You want repeat the game?> ").lower()
if answer == 'no':
print("Thanks for playing")
break
else:
print("You want repeat the game? 'yes' or 'no'")
answer = input("> ")
if answer == 'no':
print("Thanks for playing")
break
print("Thanks for playing")
break
if __name__ == '__main__':
main()