我正在构建一个生物模拟器。它将在两个 for 循环中运行,一个跟踪一天,一个跟踪一天中的时间。我有一本关于我所有生物的字典,叫做 awake,它是在每天开始时设置的。在一天循环中的某个时间点,生物会变得疲倦并入睡。模拟将它们从唤醒字典中删除,以便在一天中的剩余时间循环中不会考虑它们。但问题是,由于某种原因,唤醒字典会随着一天中的每个时间循环而重置,以便访问沉睡的生物。我已经在这里发布了相关代码,这是唯一一次使用 awake 。谁能解释我做错了什么?
for i in range(self.Day):
start = clock()
awake = self.creatures
for j in range(self.timeOfDay):
print("Life Time " + str(i + 1) + "/" + str(self.Day)
+ " Hour " + str(j + 1) + "/" + str(self.timeOfDay))
print(self)
traveling = []
for creature in awake:
goal = None
while goal == None:
priority = creature.priority()
if priority == "improveShelter":
goal = creature.findBest(land.Shelter, self.map)
elif priority == "sleep":
goal = creature.findBest(land.Shelter, self.map)
print(awake)
awake.pop(creature)