Как перемещаться по сетке в поисках непосредственной близости? - PullRequest
1 голос
/ 12 октября 2011

У меня есть сетка, которая объявлена ​​как:

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.

Существуют ли алгоритмы, которые выполняют такой поиск, на которые я мог бы обратить внимание? Или у кого-нибудь есть решения? Я чувствую, что вычисление диагоналей и тому подобное будет довольно сложным, что мне для этого нужно сделать? Любая помощь приветствуется.

1 Ответ

1 голос
/ 12 октября 2011

Math.hypot() - хороший выбор для реализации теоремы Пифагора . Здесь есть пример с именем norm(), который используется в этом KineticModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...