У меня есть сетка, которая объявлена как:
PlayerStatus enum
{
OCCUPIED,
VACANT
}
PlayerStatus[][] grid_ = new PlayerStatus[200][200];
Сетка установлена равной всем вакантным, кроме тех, где находятся игроки.
Я хотел бы иметь метод, который говорит мне, находится ли игрок в определенной сетке рядом с другим игроком, что-то вроде:
boolean inRange(int x, int y, int range)
{
//This method finds if a player is close to another one
}
Так что, если я перейду в inRange(10, 15, 5)
и на 10, 19
появится игрок, я бы хотел, чтобы метод вернул true; где 10, 21
вернет false.
Существуют ли алгоритмы, которые выполняют такой поиск, на которые я мог бы обратить внимание? Или у кого-нибудь есть решения? Я чувствую, что вычисление диагоналей и тому подобное будет довольно сложным, что мне для этого нужно сделать? Любая помощь приветствуется.