找到2D数组中两个对象之间的距离,而不是对角线

时间:2014-04-16 04:12:14

标签: java multidimensional-array

不确定之前是否发布过,但这是一个相对较短的问题

我目前正在制作一个被某些东西追逐的迷宫游戏。

目前,玩家从(0,0)开始,怪物从(9,9)开始。如果移动正在递增/递减一个(不是两个),那么算法/代码是什么来找到怪物到达主角所需的移动量?

从评论中我意识到我应该澄清一些事情。

如果房间类型是1,那么它是一堵墙,否则是打开的。但主要的是墙壁不会影响怪物。也许更好的问题是,如果所有阵列都打开,需要多少动作。

1 个答案:

答案 0 :(得分:3)

您可以查看游戏中广泛使用的A*搜索算法,因为它使用启发式方法来提高性能。

在您的情况下,启发式可以是Manhattan Distance指标来计算网格元素之间的距离。该距离度量考虑了X和Y坐标的差异总和(与欧氏距离不同,不允许对角线遍历)。

但是,要使用此算法,您需要制作地图的图形表示,如下所示:

Maze-Graph representation