再次播放循环适用于否,但不是



我在程序开始时放置了 True,在游戏结束时放置了循环。 如果按"n",则工作正常。如果按"y",则根本不起作用。

while True:
plyagn = input("Would you like to play again? (y/n)")
if plyagn in ("y", "n"):
print("*** Please choose 'y' or 'n'! ***")
if plyagn == "y":
continue
if plyagn == "n":
break

while True:
again = input("Would you like to play again? (y/n)")
if again == "y":
continue
else:
quit()

如果我按"n",它工作得很好,游戏结束。但是,当我按"y"时,它会一遍又一遍地重复问题,并且不会重新启动游戏。完全没有错误消息。

假设上面发布的代码只是整体的一个片段,只是玩家选择是否继续的"最终游戏"的代码,那么这有点不合适。

对于一个简单的、可重复的游戏,它应该在伪代码中设计成这样:

game_over = False
while not game_over:
#initialize/reset the game variables
#Do the main game loop
#Check for game over to break out of game loop
#Ask to play again

然后,在"请求再次播放"中,您需要操作game_over的值,以便在选择"n"时结束游戏(或者准确地说,结束游戏循环(,否则,恢复循环(再次进行游戏初始化(。

否则,您可以更改代码并添加一个名为game_reset((的函数,该函数将游戏的全局变量重置为默认值,而不是继续。它将看起来像:

if again=='y':
game_reset()
break()

希望这有帮助。

最新更新