Python冒险游戏输入逻辑异常:后续问题批量输出
问题根源
你的代码存在三个核心问题:
- 所有步骤无分支执行:不管用户在第一步选左还是右,后续所有问题都会直接打印,没有根据上一步结果终止或继续流程。
- 全程复用同一个变量:所有判断都依赖
game2,但只有第一步获取了用户输入,后续步骤没有重新获取新的选择,导致后续判断完全无效。 - 语法错误:
while True后面缺少冒号,这会导致代码无法正常运行。
修复后的中文版本代码
while True: # 第一步:选择路径 choice = input("欢迎来到金银岛!你的任务是找到宝藏。眼前出现两条路,左还是右?") if choice == "右": print("游戏结束!你掉进了一个深坑") break # 游戏结束,跳出循环 elif choice == "左": print("恭喜!你成功通过了第一关") else: print("请输入有效的选项:左/右") continue # 重新回到第一步 # 第二步:躲避猴子 choice = input("你被一群愤怒的猴子追赶了!你要怎么做?给它们香蕉还是躲起来?") if choice == "给它们香蕉": print("游戏结束!你没有足够的香蕉") break elif choice == "躲起来": print("恭喜!你成功摆脱了猴子") else: print("请输入有效的选项:给它们香蕉/躲起来") continue # 第三步:是否进入小屋 choice = input("你发现了一间废弃的小屋,要不要进去?") if choice == "不": print("游戏结束!你被饥饿的熊吃掉了") break elif choice == "是": print("恭喜!你成功离开了森林区域") else: print("请输入有效的选项:是/不") continue # 第四步:选择门 choice = input("你看到三扇门,编号1、2、3,选哪一扇?") if choice == "1": print("游戏结束!你掉进了黑暗的陷阱") break elif choice == "3": print("游戏结束!房间里充满了有毒气体") break elif choice == "2": print("你选对了门!") else: print("请输入有效的选项:1/2/3") continue # 第五步:选择宝箱 choice = input("你进入了一个黑暗房间,里面有三个宝箱,只能打开一个,选1、2还是3?") if choice == "3": print("游戏结束!宝箱里全是蜘蛛") break elif choice == "2": print("游戏结束!你打开了一个空宝箱") break elif choice == "1": print("恭喜!你找到了宝藏!!") break else: print("请输入有效的选项:1/2/3") continue
修复说明
- 每个步骤都单独获取用户输入,用
choice变量存储当前步骤的选择。 - 每一步判断后,若玩家
game over则用break跳出循环终止游戏;若输入无效则用continue回到当前步骤重新输入。 - 修正了
while True的语法错误,添加了冒号。 - 所有提示文本翻译为中文,符合中文玩家的使用习惯。
内容的提问来源于stack exchange,提问作者Khadija Awan
相关产品推荐
相关产品推荐

