だから私は 9x9 グリッドでパスを計画しようとしているので、boardSize は 9 です。while ループは停止する必要があります。パス リストの長さは 81 以上なので、クリーチャーが7.5 でゴールは 5.2 で標高は 0 ですか? 私の while ループは間違っていますか、それとも他の場所にあると思いますか?
def planPath(self, creature, goal, board):
print("in the path")
path = [board[creature.x][creature.y]]
while goal not in path or len(path) < self.boardSize ** 2:
print("path length")
print(len(path))
nextPossible = {}
for neighbor in path[-1].neighbors:
if type(neighbor) is not Land.Water:
nextPossible[neighbor] = abs(neighbor.location[0] - goal.location[0]) + abs(neighbor.location[1] - goal.location[1]) + abs(neighbor.elevation - goal.elevation)
path.append(min(nextPossible, key=nextPossible.get))
return path