java - Gridworld 在列表中查找最近的位置

标签 java gridworld

你好,我正在制作一个前往最近宝箱的 PirateShip Actor。使用箱子的ArrayList,我如何在网格上找到离我的海盗船最近的箱子。预先感谢您。

最佳答案

如果您有海盗船的位置和箱子的数组列表,那么我首先建议将箱子列表转换为箱子位置列表。然后:

Location loc = getLocation();
int lowest = Integer.MAX_VALUE;
Location closest = null;
for(Location l : locs)
{
    double dis = Math.sqrt(Math.pow(l.getRow() - loc.getRow(), 2) + Math.pow(l.getCol() - loc.getCol(), 2)); // Distance Formula
    if(dis < lowest)
    {
        lowest = dis;
        closest = l;
    }
}

这将设置为最接近列表中最近的位置,并且您可以使用/* 在此处插入网格名称 */.get(closest) 获取该位置中的箱子

关于java - Gridworld 在列表中查找最近的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10863875/

相关文章:

java - 如何在 Java 代码中加载 Android 布局文件,而不是将其静态放置在主 xml 布局文件中?

java - 在存储库模式中必须创建多少存储库接口(interface)?

java - 自引用类型和有界通配符之间的不良交互

java - DynamoDBMappingException GSI 没有 HASH 键

java - 如何做RandomBug代码

java - 如何绕过 NullPointerException?

java - GridWorld 自定义 UnboundedGrid<Actor>(2,无限)

java - 错误:(12) No resource identifier found for attribute 'el_headerLayout' in package