Skip to main content
 首页 » 编程设计

python之猜谜游戏程序的错误

2025年05月04日12yjmyzz

我正在创建一个程序,在该程序中,用户必须猜测特定范围内的随机数,并且有 3 次尝试这样做。每次尝试后,如果猜测正确,您会告诉用户他们赢了,如果猜测错误,您会告诉他们错误以及他们还剩下多少次尝试。当尝试次数超过 3 次而没有正确猜测时,您告诉用户他们已经尝试过了,并告诉他们他们输了。当程序在一次正确或 3 次错误尝试后结束并且游戏结束时,您询问用户是否想再次玩游戏。如果他们说"is",您将再次启动游戏,如果他们说“否”,您将结束游戏。 这是我想出的代码:

import random 
x =round(random.random()*5) 
guess = False 
tries = 0 
while guess != True: 
    if tries<=3: 
        inp = input("Guess the number: ") 
        if tries<3: 
            if inp == x: 
                guess = True 
                print "Correct! You won" 
            else: 
                print "Wrong guess! Try again." 
                tries = tries + 1 
                print "Your remaining tries are",(3-tries) 
        if tries>2: 
            if inp == x: 
                guess = True 
                print "Correct! You won" 
            else: 
                print "Wrong guess! You are out of tries" 
                print "Game Over!" 
again = raw_input("Do you want to play again? ") 
if again == "no": 
    print "Okay thanks for playing!" 
elif again =="yes": 
    print "Great!" 

现在,当您在尝试 3 次之前猜对数字时,程序似乎运行良好,但即使错误尝试次数超过 3 次,程序也会继续要求更多猜测,但我希望它立即停止程序.我不明白的第二件事是当用户想再次玩时如何重新开始整个游戏? 我如何修改我的代码来修复这些错误?

请您参考如下方法:

当某些条件变为真时停止循环的最简单方法是使用break。所以当玩家猜对时,代码看起来像

if inp == x: 
    guess = True 
    print "Correct! You won" 
    break 

此外,当你猜完后,你应该打破循环,否则它会继续运行

else: 
    print "Wrong guess! You are out of tries" 
    print "Game Over!" 
    break 

为了让玩家再次玩,你可以有一个变量 playing 并在一个 while 循环中使用它来包裹整个游戏,当他们说他们不想再玩了,让它 False 这样外层循环就结束了。

playing = True 
while playing: 
    x = round(random.random()*5) 
    guess = False 
    tries = 0 
    while guess != True: 
        ... 
 
    again = raw_input("Do you want to play again? ") 
    if again == "no": 
        print "Okay thanks for playing!" 
        playing = False 
    elif again =="yes": 
        print "Great!" 

正如您在另一个答案的评论中指出的那样,当玩家第三次猜错时,游戏会告诉他们还剩 0 次猜测并重试,然后告诉他们尝试次数已尽且游戏结束.由于您希望它只告诉他们他们已经尝试过了并且游戏结束了,因此您可以将主要代码块更改为:

while guess != True: 
    inp = input("Guess the number: ") 
    if inp == x: 
        guess = True 
        print "Correct! You won" 
    else: 
        tries = tries + 1 
        if tries == 3: 
            print "Wrong guess! You are out of tries" 
            print "Game Over!" 
            break 
        else: 
            print "Wrong guess! Try again." 
            print "Your remaining tries are",(3-tries)