调试简易猜数字游戏:修复游戏重启功能异常问题
猜数字游戏重启功能问题排查与解决
问题点分析
- 重置游戏时未恢复
status状态:用户选择'y'重新玩后,status仍为False,内层循环无法启动新一局猜数流程。 - 退出游戏时的赋值错误:选择'n'退出时,使用了比较运算符
game == False而非赋值运算符game = False,导致外层循环无法终止。
修正后的代码
import random game = True while game: secret_number = random.randint(1, 100) status = True # 每局开始前重置状态 while status: guess_number = int(input("Guess a number. ")) if guess_number == secret_number: print("You won the game!!") another_game = input("Do you want to play once again? (y/n)") if another_game == 'y': print("OK") status = False # 结束当前局 elif another_game == 'n': print("Thankyou for Playing") game = False # 终止外层循环,退出游戏 status = False elif guess_number < secret_number: print("You are too low.") elif guess_number > secret_number: print("You are too high.")
关键修改说明
- 将
status的初始化移到外层循环内部,确保每局游戏开始时状态都是True。 - 退出游戏时修正为
game = False,正确终止外层循环。 - 调整逻辑,用户选择重新玩时直接设置
status = False结束当前局,外层循环会自动开启新局并重置状态。
内容的提问来源于stack exchange,提问作者Sunil Kumar
相关产品推荐
相关产品推荐

