【发布时间】:2020-12-03 17:16:00
【问题描述】:
我对编码完全陌生,并且正在使用 Python 开发基于文本的游戏作为学校项目。用户必须通过键入“North”、“East”、“South”或“West”进入房间。如果方向无效,应弹出错误消息,提示用户输入新方向。如果用户输入“退出”,游戏应该结束。
我在这个项目中遇到了一百万个问题,因为我发现我在编码方面很糟糕,但我想弄清楚的是如何让我的程序在出现提示时退出游戏。这是我的代码(它不是完整的代码,只是我目前所拥有的。我试图一步一步解决问题,这就是我卡住的地方):
rooms = {
'Great Hall': {'South': 'Bedroom'},
'Bedroom': {'North': 'Great Hall', 'East': 'Cellar'},
'Cellar': {'West': 'Bedroom'}
}
def main():
current_room = 'Great Hall'
user_input = None
while user_input != "Quit":
print('You are in the', current_room + '.')
user_input = input('Where would you like to go?: ')
current_room = rooms[current_room][user_input]
else:
print('Thanks for playing!')
main()
当我运行程序时,我收到以下错误消息: Error Message
如果有人能指出我需要解决的正确方向,我将不胜感激!
【问题讨论】:
-
您的房间变量不包含退出信息。
rooms[current_room]['Quit'] -
您的
while循环一直运行,直到用户的输入为Quit。但是,如果是Quit,代码将尝试访问不存在的rooms[current_room]['Quit']。你应该只有一个while True循环,然后是break,如果用户的输入是Quit,并且只有在你检查之后,你才会运行current_room = rooms[current_room][user_input]。但您可能想检查用户输入是否是rooms中的有效键:stackoverflow.com/questions/23294658/…