我正在创建一个程序,在该程序中,用户必须猜测特定范围内的随机数,并且有 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)
