如何让Python文字冒险游戏的无效移动提示信息正确打印
文字类房间移动游戏无效指令提示修复方案
核心问题排查
你的现有代码存在两个逻辑问题:
- 未校验输入方向的合法性,直接访问字典的不存在键会触发
KeyError导致程序崩溃 - 错误提示没有和移动结果绑定,无论移动是否成功都会触发提示输出
修正后可运行代码
rooms = { 'Great Hall': {'South': 'Bedroom'}, 'Bedroom': {'North': 'Great Hall', 'East': 'Cellar'}, 'Cellar': {'West': 'Bedroom'} } # 房间映射关系表 startingbiome = 'Great Hall' # 初始出生房间 currentbiome = startingbiome while True: print('你当前位于:', currentbiome) swim = input('请输入你想要移动的方向,输入Exit可退出游戏:') # 兼容大小写的退出判断 if swim.lower() == 'exit': break # 校验方向是否合法 if swim in rooms[currentbiome]: # 方向合法时更新当前房间 currentbiome = rooms[currentbiome][swim] else: # 方向不合法时输出对应提示 print('你不能往这个方向走!请重新选择移动方向!')
修改说明
- 新增了方向合法性校验逻辑:通过
in关键字判断输入的方向是否存在于当前房间的可移动方向列表中,避免非法输入导致程序崩溃 - 调整了提示语的执行分支:只有当输入方向不合法时才会触发错误提示,移动成功时会正常刷新当前位置
- 额外优化了退出逻辑的兼容性,支持小写exit、大写EXIT等多种大小写格式的退出指令
内容的提问来源于stack exchange,提问作者ked730
相关产品推荐
相关产品推荐

