Разорвать цикл для основного питона - PullRequest
0 голосов
/ 15 февраля 2019

Я работал над этим некоторое время.Я был в состоянии заставить части этого работать, но никогда полностью.Конечная цель - вернуть пользователя в другую игру, если он того пожелает.Я думаю, что проблема в моем заявлении на перерыв, но я не уверен, как обойти это.Я включил весь свой код, чтобы можно было найти любые ошибки.Извиняюсь, если на этот вопрос уже был дан ответ, я не смог найти страницу с такой проблемой.

def game():
    import random
    from random import randint
    n = randint(1, 10)
    print('Enter a seed vlaue: ')
    the_seed_value = input(' ')

    random.seed(the_seed_value)

    guessesTaken = 0

    print("what is your name?")
    myName = input("")

    guess = int(input("Enter an integer from 1 to 99: "))

    while n != "guess":


        if guess < n:
            print ("guess is low")
            guessesTaken = guessesTaken + 1
            guess = int(input("Enter an integer from 1 to 99: "))
        elif guess > n:
            print ("guess is high")
            guessesTaken = guessesTaken + 1
            guess = int(input("Enter an integer from 1 to 99: "))
        else:
            print ("Congradulations " + myName +  " you guessed it in " + str(guessesTaken) + " guesses!") 
            break 


    print('Want to play agian? y/n')
    answer = input(" ")
    if answer == "n":
        print ("Ok, See you next time!")

    elif answer == "y":
        print("Starting new game!")
        game()


def main():
    game()

if __name__ == "__main__":
    main()

1 Ответ

0 голосов
/ 15 февраля 2019

Например, @kerwei правильно отмечает, что в строке while есть проблема, и ее необходимо изменить с while n != "guess": на while n != guess:.

Для двух ваш цикл while будет выполнен, когдаигрок угадывает правильно, минуя линию Congrats.

Поскольку игра в настоящее время структурирована так, чтобы оставаться в цикле до тех пор, пока игрок не угадает правильно, простым решением было бы удалить строку else: из цикла и разместить после нее оператор победы.То есть

def game()
    ...
    while n != guess:
        if guess < n:
            ...
        elif guess > n:
            ...
    print('Congrats!')
    print('play again?')
    ... 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...