目前我正在参加 Python 的在线课程,只完成了大约 1/3 的课程,我决定尝试用我目前所学的东西来做一些事情。虽然现在遇到错误。我正在房子里创建一个基于文本的冒险游戏。每个房间都是独立的功能。前任:
def hallway():
hallway_direction = raw_input('blahblah')
if hallway_direction == 'n':
living_room()
虽然我有一个房间,你需要一个手电筒才能进入。我使用字典来保存房间的任何值,这就是我所拥有的。
global rooms
rooms = {}
rooms['first_room'] = {'note' : False}
rooms['old_door'] = {'boots' : False}
rooms['first_again'] = {'torch' : False}
rooms['first_again'] = {'seen' : False}
在另一个房间里,它把手电筒设置为真,但我遇到的问题是,如果你没有手电筒,我需要它带你回到大厅
def fancy_door():
raw_input('You open the door, the inside is pitch black. You need a source of light before you can enter.')
if rooms['first_again']['torch']:
raw_input('You light the torch and step inside, the room is bare, only a table with a ring in the center.')
choice5_r = raw_input('Do you take the ring? Y/N ("back" to leave)')
choice5_r = choice5_r.lower()
if choice5_r == 'y':
raw_input('Some text here')
darkness()
elif choice5_r == 'n':
raw_input('You leave the ring as it is.')
fancy_door()
elif choice5_r == 'back':
hall()
else:
raw_input('Not a valid option')
fancy_door()
else:
hall()
但是,当我运行此程序时,出现此错误:
Traceback (most recent call last):
File "<stdin>", line 247, in <module>
File "<stdin>", line 23, in first_room
File "<stdin>", line 57, in hall
File "<stdin>", line 136, in fancy_door
KeyError: 'torch'
在第 247 行,它调用了 first_room() 直到这一点。23 调用 hall() 直到这一点。57 调用了应该工作的 fancy_door() 它看起来与其他门功能相同并且它们工作正常。第 136 行是“if rooms['first_again']['torch']:”上面的行
如果问题不在这里,我可以在这里或 pastebin 上发布全部代码,我不只是因为它有 230 行长。
如果有人可以帮助我,我会非常感激。
另外,请原谅糟糕的代码,我知道它可能不遵循正确的约定,但就像我说的,我是 Python 新手,一般来说都是编程新手。这是我写过的第一件事。提前致谢!