我正在尝试用Python做一个简单的文本游戏。我有一个Room
类:
class Room():
def __init__(self, monster, exits, loot):
self.room_guard = monster
self.exits = exits
self.guard_is_alive = True
self.loot = loot
当我创建文件室时,出现了一个错误,因为我在创建它们之前调用它们,如下所示:
room_2 = Room(spider, {"West": room_3, "East": room_4, "South": room_1}, 2)
room_1 = Room(trogdor, {"North": room_2}, 2)
房间2不能有"South": room_1
,因为它还没有被实例化。有办法吗?你知道吗
两个选项:间接、创建后赋值。你知道吗
不要直接引用文件室,而是使用将文件室名称映射到文件室的
dict
:或在创建房间对象后指定出口:
在对象创建之前,无法引用它。但是,可以在创建对象后修改
exits
字典,以便在文件室之间创建链接。一个很好的方法是让您创建的第二个房间通过一个附加参数自动创建一些回自身的链接:然后你会把一个额外的字典传递给后面房间的构造器,让它把链接从前面房间设置回自己:
我能想象的最好的方法是创建对象,然后分两个不同的步骤创建链接。你知道吗
先整理房间
然后添加链接
相关问题 更多 >
编程相关推荐