java - 查找二维数组中两个对象之间的距离,而不是对角线

标签 java multidimensional-array

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

我目前正在开发一款被某物追赶的迷宫游戏。

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

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

如果房间类型为1,则为墙壁,否则为开放式。但最重要的是墙壁不会影响怪物。也许更好的方法是问如果所有数组都打开,需要移动多少次。

最佳答案

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

就您而言,启发式可能是 Manhattan Distance度量来计算网格元素之间的距离。该距离度量考虑了 X 和 Y 坐标差异的总和(与欧几里得距离不同,它不允许对角线遍历)。

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

Maze-Graph representation

关于java - 查找二维数组中两个对象之间的距离,而不是对角线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23099836/

相关文章:

java - 你怎么 'escape'一个用户名:password pair in a connection string?

java - 字符串转Json的方法

c# - 将 3d int 数组写入文件(并更新它)的最佳方法?

java - 动态二维数组

java - Hibernate Envers - 遍历关系

java - 将 spring bean 注入(inject)未由 spring 实例化的类中

java - 具有相同 REST GET 的多种响应类型?

python - 在Python中循环二维数组的最有效方法是什么

java - 按列将数据添加到二维数组中

java - Java中如何将Data设置为多维数组?