Gridworld найти ближайшее место в списке

Здравствуйте, я делаю актера в пиратском корабле, который отправляется в ближайший сундук с сокровищами. используя ArrayList сундуков, как найти ближайший к моему пиратскому кораблю сундук в сетке. Заранее спасибо.

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;
    }
}

Это установит ближайшую к ближайшей локации в списке, и вы можете получить сундук в этой локации, используя /* вставьте здесь имя сетки */. Get(ближайшая)

Другие вопросы по тегам