Манхэттенское расстояние для 8-головоломки на питоне

Я пытаюсь вычислить манхэттенское расстояние для 8-головоломки с помощью A*. Я понимаю, что делаю что-то не так, сравнивая текущие позиции с целью, но не могу точно понять, что делаю неправильно (я новичок в python). Пожалуйста помоги.

 def manhattan_distance(self, goal):
  dist = 0
  x = 0
  y = 0
  goal = [(0, 0), (1, 0), (2, 0),
          (0, 1), (1, 1), (2, 1),
          (0, 2), (1, 2), (2, 2)]
      for row in range(len(self.board)):
        for col in range(len(self.board)):
           val = self.board[row][col]
           if val != 0:
             for x, y in goal:
               dist += abs(row - x) + abs(col - y)
  return dist

Я не получаю сообщения об ошибке, он просто продолжает поиск по узлам.

0 ответов

Другие вопросы по тегам