Gridworld在列表中找到最接近的位置

时间:2012-06-02 16:05:51

标签: java gridworld

您好我正在制作一个PirateShip演员,可以到最近的宝箱。使用胸部的ArrayList我如何在网格上找到离我的海盗船最近的胸部。提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您有PirateShip的位置和胸部的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;
    }
}

这将设置最接近列表中最近的位置,您可以使用/ *在此处插入网格名称来获取该位置的胸部* /。得到(最近)