我按照本实验室的说明进行操作:http://programarcadegames.com/index.php?chapter=lab_adventure&lang=en
我很困惑如何在设置这些if语句后允许用户前往其他房间。我按照说明操作,但我可能不对。 到目前为止,这是我的代码:
room_list=[]
room = ["You are in a small bedroom! There is a door to the north.", 1, None, None, None]
room_list.append(room)
room = ["You are now in a bigger bedroom! There is a door to the East!", None, 2, None, None]
room_list.append(room)
room = [ "You are now in the North hall! There is a Door to the South!", None, None, 3, None]
room_list.append(room)
room = [" You are now in the South hall! There is a door to the East!", None, 4, None, None]
room_list.append(room)
room = [" You are now in the dining room but you smell something past the North door!", 5, None, None, None]
room_list.append(room)
current_room = 0
done = False
while not done:
print(room_list[current_room][0])
user_c = input("What direction do you want to go?")
if user_c.lower() == "north":
next_room = room_list[current_room][1]
current_room = next_room
elif user_c.lower() == "east":
user_c = room_list[current_room][2]
elif user_c.lower() == "south":
user_c = room_list[current_room][3]
elif user_c.lower() == "west":
user_c = room_list[current_room][4]
else:
print("I dont understand.")
if user_c == None :
print("You can't go that way.")
一旦用户进入北室,我如何进入东室而不与其他if语句冲突? 为这个愚蠢的问题道歉,谢谢你的帮助!
答案 0 :(得分:0)
您可能想尝试使用非常简单的类和词典。它们基本上就是你要找的东西。
class Room:
def __init__(self, text, other_rooms=None):
self.text = text
self.other_rooms = other_rooms
def set_other_rooms(self, other_rooms):
self.other_rooms = other_rooms
rooms = [Room("You are in a small bedroom! There is a door to the north."),
Room("You are now in a bigger bedroom! There is a door to the East!"),
Room("You are now in the North hall! There is a Door to the South!"),
Room("You are now in the South hall! There is a door to the East!"),
Room("You are now in the dining room. You smell something past the North door!"),]
rooms[0].set_other_rooms( { "north":rooms[1],
"south":None,
"east":None,
"west":None } )
rooms[1].set_other_rooms( { "north":None,
"south":None,
"east":rooms[2],
"west":None } )
rooms[2].set_other_rooms( { "north":None,
"south":rooms[3],
"east":None,
"west":None } )
rooms[3].set_other_rooms( { "north":None,
"south":None,
"east":rooms[4],
"west":None } )
rooms[4].set_other_rooms( { "north":rooms[5],
"south":None,
"east":None,
"west":None } )
current_room = None
done = False
while not done:
print(current_room.text)
user_c = input("What direction do you want to go?").lower()
if user_c == "exit":
done = True
elif current_room.other_rooms[ user_c ]:
current_room = current_room.other_rooms[ user_c ]
else:
print("You can't go that way.")
另外,伙计,这是一个非常糟糕的教程。它可能有一些教学初学者 Python的优点,但如果您实际上是在Python中进行开发,那么它根本不是您想要做的。虽然网上学习Python确实有很多很棒的内容,但也有很多垃圾。承认没有最好的方法来做事,但同时尽量遵循最佳实践。这通常包括咨询Stack Exchange。