


Задание на Python
Реализуйте игру "Угадай число" используя функции. Программа задумывает целое число от 1 до 10. Пользователь пытается угадать. При неправильном ответе выводить подсказку: "Задуманное число больше(меньше)". В конце каждой игры предлагать повторить игру или выйти. Можно реализовать функции запроса ответа пользователя, проверки условия выигрыша, запроса продожения игры и т.д.
У меня в коде ошибка, прошу исправить
import random
def get_random_number():
return random.randint(1, 10)
def check_guess(guess, expected_number):
if guess == expected_number:
return True
else:
return False
def print_hint():
print("Задуманное число больше(меньше) ожидаемого числа")
def ask_guess():
while True:
try:
guess = int(input("Введите ваше число: "))
break
except ValueError:
print("Неверный формат. Попробуйте еще раз.")
def check_winning_condition(guess, expected_number):
if guess == expected_number:
return True
elif guess < expected_number:
print_hint()
return False
else:
print_hint()
return True
def ask_to_play_again():
while True:
answer = input("Хотите сыграть еще одну игру? (да/нет): ")
if answer.lower() == "да":
return True
elif answer.lower() == "нет":
return False
else:
print("Неверный ответ. Попробуйте еще раз.")
while True:
expected_number = get_random_number()
guess = ask_guess()
if check_guess(guess, expected_number):
print("Поздравляем! Вы выиграли игру.")
break
print_hint()
if not check_winning_condition(guess, expected_number):
continue
if ask_to_play_again():
break
if not ask_to_play_again():
print("Вы проиграли игру.")
else:
print("Вы выиграли игру.")
from random import randint
def r_num():
n = randint(1, 10)
return n
def get_user_num():
return int(input('Ваше число: '))
def win_lose(n):
un = get_user_num()
return ['Победа!', 'Задуманное число меньше', 'Задуманное число больше'][(un != n) + (un < n) + (un > n * 2)]
def con_game():
return input('Продолжить? (да/нет): ')
def main():
n = r_num()
while True:
result = win_lose(n)
print(result)
if result == 'Победа!':
n = r_num()
if con_game().lower() == 'нет':
break
main()
import random
def get_random_number():
return random.randint(1, 10)
def check_guess(guess, expected_number):
return guess == expected_number
def print_hint(expected_number, guess):
if guess < expected_number:
print("Задуманное число больше вашего.")
else:
print("Задуманное число меньше вашего.")
def ask_guess():
while True:
try:
guess = int(input("Введите ваше число: "))
return guess
except ValueError:
print("Неверный формат. Попробуйте еще раз.")
def check_winning_condition(guess, expected_number):
if guess == expected_number:
return True
else:
print_hint(expected_number, guess)
return False
def ask_to_play_again():
while True:
answer = input("Хотите сыграть еще одну игру? (да/нет): ")
if answer.lower() == "да":
return True
elif answer.lower() == "нет":
return False
else:
print("Неверный ответ. Попробуйте еще раз.")
while True:
expected_number = get_random_number()
while True:
guess = ask_guess()
if check_winning_condition(guess, expected_number):
print("Поздравляем! Вы угадали число.")
break
else:
continue
if not ask_to_play_again():
print("Спасибо за игру!")
break
Функция print_hint теперь принимает два параметра, чтобы правильно выводить подсказку.
В функции ask_guess теперь используется return вместо break, чтобы возвращать угаданное число.
Логика в основном цикле игры обновлена для корректной работы условий победы и повторения игры.
Длинный очень можне и покороче написать