我正在构建一个生物模拟器。它将在两个 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)