Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Задание на 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("Вы выиграли игру.")

По дате
По рейтингу
Аватар пользователя
Новичок
123456789101112131415161718192021222324252627
 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, чтобы возвращать угаданное число.

Логика в основном цикле игры обновлена для корректной работы условий победы и повторения игры.

Аватар пользователя
Профи

Длинный очень можне и покороче написать