Python в то время как игра угадывания числа петли с ограниченными догадками - PullRequest
0 голосов
/ 05 марта 2019

Для задания класса я пытаюсь создать игру по угадыванию чисел, в которой пользователь решает ответ и количество догадок, а затем угадывает число в пределах этого ограниченного числа ходов.Я должен использовать цикл while с оператором and и не могу использовать break.Однако моя проблема в том, что я не уверен, как отформатировать программу, чтобы при достижении максимального числа оборотов программа не печатала подсказки (выше / ниже), а только сообщала вам, что вы потеряли / чтоответ был. Это не будет работать конкретно, если я выберу максимальное количество предположений 1. Вместо того, чтобы просто печатать «Вы проиграли; число было __», он также печатает подсказку.Это моя лучшая попытка, которая близка к выполнению всего, что должна делать эта программа.Что я делаю не так?

answer = int(input("What should the answer be? "))
guesses = int(input("How many guesses? "))

guess_count = 0
guess = int(input("Guess a number: "))
guess_count += 1
if answer < guess:
    print("The number is lower than that.")
elif answer > guess:
    print("The number is higher than that")

while guess != answer and guess_count < guesses:
    guess = int(input("Guess a number: "))
    guess_count += 1
    if answer < guess:
        print("The number is lower than that.")
    elif answer > guess:
        print("The number is higher than that")

if guess_count >= guesses and guess != answer:
    print("You lose; the number was " + str(answer) + ".")
if guess == answer:
    print("You win!")

1 Ответ

0 голосов
/ 06 марта 2019

Как насчет этого?

answer = int(input("What should the answer be? "))
guesses = int(input("How many guesses? "))
guess_count = 1
guess_correct = False

while guess_correct is False:
    if guess_count < guesses:
        guess = int(input("Guess a number: "))
        if answer < guess:
            print("The number is lower than that.")
        elif answer > guess:
            print("The number is higher than that")
        else:  # answer == guess
            print("You win!")
            break
        guess_count += 1
    elif guess_count == guesses:
        guess = int(input("Guess a number: "))
        if guess != answer:
            print("You lose; the number was " + str(answer) + ".")
        if guess == answer:
            print("You win!")
        break

Это очень похоже на вашу программу, но там есть пара break операторов.Это говорит Python немедленно прекратить выполнение этого цикла и перейти к следующему блоку кода (в данном случае ничего).Таким образом, вам не нужно ждать, пока программа оценит условия, заданные вами для цикла while, прежде чем начинать следующий цикл.Если это помогло решить вашу проблему, было бы здорово, если бы вы щелкнули галочку напротив моего сообщения

...