如何询问玩家是否要重玩我的 Python3 终端号码猜谜游戏?



我的猜号游戏有一个几乎可以工作的代码。直到最后,当询问玩家是否要再次玩并输入"是"时,它完全运行良好 - 终端输出以下内容:

Ha ha. You took too many guesses! I win! ^__^
Would you like to play again? (yes/no) yes
I'm thinking of a number between 1 and 99!
Ha ha. You took too many guesses! I win! ^__^
Would you like to play again? (yes/no) 

我想只是把整个程序放在一个循环中,但我在游戏中有几个开场白问题,应该只在他们第一次运行程序时问,而不是每次他们想重玩游戏时。(例如,你叫什么名字?你想玩吗?我不确定如何重新运行该程序,但在这些初始问题之后开始。使用我当前的代码,当玩家在结尾输入"yes"以重玩游戏时,我不知道该写什么。

import random
import sys
guesses_taken = 0
number = random.randint(1, 99)
name = input("nHello, what's your name? ")
print(f"nNice to meet you, {name}.")
answer = input("Would you like to play a guessing game? (yes/no) ").lower()
while True:
if answer == "no":
print("nToo bad, goodbye!n") 
sys.exit()
elif answer == "yes":
print(f"nOkay, let's play!")
break
else:
print("nSorry, I didn't get that.")
while True:
print("nI'm thinking of a number between 1 and 99!")
while guesses_taken < 6:
guess = input("Take a guess: ")
guesses_taken += 1
if int(guess) > number:
print("nYour guess is too high!n")
elif int(guess) < number:
print("nYour guess is too low!n")
else:
print("nArgh..you guessed my number! You win! -__-")
break
while guesses_taken >= 6:
print("nHa ha. You took too many guesses! I win! ^__^")
break
again = input("nWould you like to play again? (yes/no) ")
if again == "no":
break
sys.exit()

变量guesses_takennumber在重播时都会保留它们的值,这使得游戏不是很有趣。你需要做一些事情来改变这一点,比如——

again = input("nWould you like to play again? (yes/no) ")
if again == "no":
break
else:
guesses_taken = 0
number = random.randint(1, 99)

函数等可以使代码更清晰,但这是您需要进行的最小更改才能使事情正常工作。

最新更新