Я делаю карту 2D-массива, например:
* 0 1 2 3 4 5 6
0 # # # # # P #
1 # # # # # # #
2 # # # # # # #
3 # # T # # # #
4 # # # # # # #
Это игра. «Т» — Тролль, а «П» — Игрок. Тролль преследует игрока в этой игре. Предположим, что игрок теперь не будет двигаться. Позиция (строка, столбец) Тролля (3,2) и Игрока (0,5)
Тролль может преследовать игрока, идя в правом верхнем направлении. Это означает, что для достижения позиции P требуется всего 3 шага:
(3,2)->(2,3)->(1,4)->(0,5)
Но когда я использую формулу евклидова расстояния:
(int) Math.floor(Math.sqrt(Math.pow((0-3) , 2) + Math.pow((5-2) , 2))) ;
туда нужно сделать 4 шага.
Я так запутался в формуле Distance. Я не могу использовать его в этой ситуации? Но в некоторых случаях он делает правильные шаги.
Надеюсь, кто-то может объяснить эту проблему, спасибо.