Игра с угадыванием случайных чисел - PullRequest
0 голосов
/ 29 апреля 2020

Я пишу генератор случайных чисел, который предлагает пользователю угадать. Я хочу, чтобы программа завершалась только при выборе варианта 2. Пока что все мои выводы верны, но когда они делают правильное предположение, он просто переходит прямо в новую игру. Это не даст желаемый результат. Я уверен, что я просто упускаю из виду небольшую деталь в то время как я oop, но я попробовал то, что мне знакомо. Любая помощь будет отличной. Вот что у меня есть:

'' '

# Import the Random function.
import random

# Create variable to keep track of guesses
count = 0

# Define menu for ease of reference

menu = """
1. Play Game
2. Exit
"""

choice = None

# Set the Loop

while (choice != 2):
    print (menu)
    choice = int(input("Would you like to play a game?"))

    if (choice == 1):
        print ("Guess a number between 1 & 100:")
        x = random.randint (1, 100)
        guess = int(input())

        while (guess != x):
            if (guess < x):
                guess = int(input("Your guess is too low, try again:"))
                count = count+1

            elif (guess > x):
                guess = int(input("Your guess is too high, try again:"))
                count = count+1

            elif (guess == x):
                print ("Congratulations, you guessed the number in", count, "attempts!")



    else:
        exit

#Pseudocode for the above program

# Ask user if they want to play the guessing game
# Randomly generate a number
# Ask user to guess and give hints (too low, too high)
# Generate a new random number each game
# Only quit when user selects to exit

' ''

1 Ответ

0 голосов
/ 29 апреля 2020

Если ваша догадка неверна (угадать x), программа входит в один из этих if-блоков. Там вы обновляете свое предположение. Если это предположение верно, оно не выполнит блок предположения == x, поскольку это предположение было неверным при сравнении с x.

Вместо того, чтобы запрашивать новое предположение внутри тел if-else-body спросите его в начале l oop и проверьте потом:

print ("Guess a number between 1 & 100:")
x = random.randint (1, 100)

while (True):
    guess = int(input())
    if (guess < x):
        print("Your guess is too low, try again:")
        count = count+1

    elif (guess > x):
        print("Your guess is too high, try again:")
        count = count+1

    elif (guess == x):
        print ("Congratulations, you guessed the number in", count, "attempts!")
        break

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...