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