这是我为学校项目编写的代码。我只需要能够获取用户输入并让他们从一个房间移动到另一个房间。
rooms = {
'Great Hall': {'South': 'Bedroom'},
'Bedroom': {'North': 'Great Hall', 'East': 'Cellar'},
'Cellar': {'West': 'Bedroom'}
}
def move_room(user_input, current_room):
valid_directions = rooms[current_room].keys()
if user_input in valid_directions:
next_room = rooms[current_room][user_input]
print("You have moved to", next_room)
return next_room
else:
print("There is no exit that way.")
return current_room
def main():
while True:
current_room = 'Great Hall'
print('You are in the', current_room)
print('You can move', rooms[current_room].keys())
user_input = input("Enter a direction:")
if user_input != 'exit':
next_room = move_room(user_input, current_room)
current_room = next_room
else:
print("Goodbye")
break
if __name__ == '__main__':
main()
这是我运行代码时得到的结果。
你在人民大会堂 您可以移动 dict_keys(['South']) 输入方向:
您已搬到卧室 你在人民大会堂 您可以移动 dict_keys(['South']) 输入方向:
我不记得我所有的具体步骤。由于压力太大,我不得不离开几天。我尝试了几种不同的方法来让南边的 dict_keys 和括号消失,但不知道如何实现。
我也不知道如何让它更新新房间而不是默认到大厅。我尝试将其移至主函数上方并将其作为全局 current_room 访问。
如有任何帮助,我们将不胜感激。
如果有人需要知道我需要使用该项目的主要功能。
您的代码在每个循环开始时将玩家移回大厅。
while True:
current_room = 'Great Hall'
print('You are in the', current_room)
# etc.
不要这样做。初始化当前房间一次,然后进入循环。
current_room = 'Great Hall'
while True:
print('You are in the', current_room)
# etc.