私は生き物シミュレーターを構築しています。1 つは日付を追跡し、もう 1 つは時刻を追跡する 2 つの for ループ内で実行されます。私は、目覚めと呼ばれるすべての生き物の辞書を持っています。これは、毎日の開始時に設定されています。時間ループのある時点で、生き物は疲れて眠りにつくでしょう。シミュレーションはそれらを起動中の辞書から削除して、残りの時間ループで考慮されないようにします。しかし、ここに問題があります。なんらかの理由で、眠っている生き物にアクセスできるように、1日のループのたびに起きている辞書がリセットされます。関連するコードをここに投稿しました。これは、アウェイクが使用される唯一の時間です。誰かが私が間違っていることを説明できますか?
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)