猜数字游戏Python

时间:2020-05-30 05:17:18

标签: python

因此,我是python的新手,我面临着这个挑战:我必须在我和计算机之间制作Guess the Number游戏。所以这就是我目前为止的位置。

import random


the_number = random.randint(1, 4)
guess = 0

print(the_number)
while guess != the_number:
    guess = int(input("Please enter a number: "))
    if guess > the_number:
        print("Player guess lower...\n")
    elif guess < the_number:
        print("Player guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Player wins!")
        break


    guess = random.randint(1, 100)

    if guess > the_number:
        print("Computer guess lower...\n")
    elif guess < the_number:
        print("Computer guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Computer wins!")
    break


print("Thank you for playing")

我想知道如何做到这一点,直到我们中的一个人是对的时才停止?

5 个答案:

答案 0 :(得分:2)

# Import random library
import random
# Assign random value between 1-100
secret_number = random.randint(1, 100)
# get the user guess
guess = int(input("Guess the secret number between 1-100: "))

# Loop untill guess not equal to secret number
while guess != secret_number:
    if guess < secret_number:
        print("Sorry, your guess is too low.")
    else:
        print("Sorry, your guess is too high.")
    
    # guess the number again
    guess = int(input("Guess the secret number between 1-100: "))
 
# This statement will execute after coming out of while loop
print("You guessed the number!")

答案 1 :(得分:0)

您可以执行以下操作使计算机更智能。

import random

the_number = random.randint(1, 4)
guess = 0

print(the_number)
minPossible = 0
maxPossible = 100

while guess != the_number:
    guess = int(input("Please enter a number: "))
    if guess > the_number:
        print("Player, guess lower...\n")
        if guess < maxPossible:
            maxPossible = guess - 1
    elif guess < the_number:
        print("Player, guess higher...\n")
        if guess > minPossible:
            minPossible = guess + 1
    else:
        print("Game Over! The number was", the_number, "The Player wins!")
        break

    guess = random.randint(minPossible, maxPossible)

    if guess > the_number:
        print("Computer, guess lower...\n")
        maxPossible = guess - 1
    elif guess < the_number:
        print("Computer, guess higher...\n")
        minPossible = guess + 1
    else:
        print("Game Over! The number was", the_number,"The Computer wins!")


print("Thank you for playing")

答案 2 :(得分:0)

您的问题是while循环末尾的break语句。代码在循环中循环了一次,然后break结束了循环。

答案 3 :(得分:0)

您在第27行break上遇到的错误。将其移动到 else: 下或删除。 实际上,第27行break不必要。 因此,最终代码将如下所示:

import random


the_number = random.randint(1, 4)
guess = 0

print(the_number)
while guess != the_number:
    guess = int(input("Please enter a number: "))
    if guess > the_number:
        print("Player guess lower...\n")
    elif guess < the_number:
        print("Player guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Player wins!")
        break


    guess = random.randint(1, 100)

    if guess > the_number:
        print("Computer guess lower...\n")
    elif guess < the_number:
        print("Computer guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Computer wins!")


print("Thank you for playing")

答案 4 :(得分:0)

要获得所需的输出,您只需要稍微调整一下代码,计算机的if语句中的break就不会出现else循环,因此无论如何它将停止执行。

要解决此问题,可以将break移动到else块内。这样,只有在CPU或您正确猜测正确的数字时,程序才会中断。

我想指出的另一件事是,您正在程序中打印选择号,如果这是一个猜谜游戏,不是应该在代码的后端。通过输入打印的数字,您可以在第一次迭代中赢得比赛。

只是要指出,您的程序正在选择(1, 4)中的数字,但是计算机已设置为猜测(1, 100)中的数字。 如果正确,请在答案上打勾。 修改后的代码是-

import random


the_number = random.randint(1, 4)
guess = 0

while guess != the_number:
    guess = int(input("Please enter a number: "))
    if guess > the_number:
        print("Player guess lower...\n")
    elif guess < the_number:
        print("Player guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Player wins!")
        break

    guess = random.randint(1, 4)

    if guess > the_number:
        print("Computer guess lower...\n")
    elif guess < the_number:
        print("Computer guess higher...\n")
    else:
        print("Game Over! The number was", the_number,"The Computer wins!")
        break


print("Thank you for playing")