小编ann*_*nie的帖子

计算2D阵列中的2个点

我正在做二维数组映射,如:

* 0 1 2 3 4 5 6
0 # # # # # P #
1 # # # # # # #
2 # # # # # # #
3 # # T # # # #
4 # # # # # # #
Run Code Online (Sandbox Code Playgroud)

这是一场比赛.'T'是巨魔,'P'是玩家.Troll在这场比赛中追逐球员.假设玩家现在不会移动.Troll的位置(行,列)是(3,2)和玩家(0,5)

巨魔可以通过向右上方向走来追逐玩家.这意味着,到达P位置只需3个步骤:

(3,2)->(2,3)->(1,4)->(0,5)
Run Code Online (Sandbox Code Playgroud)

但是,当我使用欧几里德距离公式时:

    (int) Math.floor(Math.sqrt(Math.pow((0-3) , 2) + Math.pow((5-2) , 2))) ;
Run Code Online (Sandbox Code Playgroud)

去那里需要4个步骤.

我对距离公式很困惑.在这种情况下我不能用它吗?但在某些情况下,它需要正确的步骤.

希望有人能解释这个问题,谢谢.

java algorithm shortest-path coordinates

4
推荐指数
1
解决办法
1934
查看次数

标签 统计

algorithm ×1

coordinates ×1

java ×1

shortest-path ×1