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(ближайшая)