Итак, я пытаюсь спланировать путь по сетке 9x9, поэтому boardSize равно 9. Цикл while должен остановить список путей длиной 81 или более, так почему это возможно, что он может добраться до длина 3531, когда существо составляет 7,5, а цель - 5,2, а отметки - 0? Я ошибаюсь, или вы думаете, что это может быть где-то еще?бесконечный пробел во время цикла
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
Думаю, вам просто нужно изменить 'или' на 'и' в своем 'while' сообщении. – Marius
* знак * Я боялся, что это будет что-то немым, спасибо. – EasilyBaffled
@ Marius - почему бы не опубликовать ответ? Вопросы с закрытием лучше, чем вопросы без :) – mgilson