Java 如何在网格中导航以寻找近距离?
我有一个声明如下的网格:Java 如何在网格中导航以寻找近距离?,java,search,grid,Java,Search,Grid,我有一个声明如下的网格: 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 clo
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;其中as10、21将返回false
有什么算法可以进行这种搜索吗?或者有人有什么解决办法吗?我觉得计算对角线之类的东西会很难,我该怎么做呢?感谢您的帮助 是实现的好选择。这里有一个名为的示例,在本文中使用。是实现的好选择。这里有一个名为的示例,在本示例中使用。假设a。假设a。您的算法取决于您如何定义距离。如果它是一条直线,那么毕达哥拉斯定理就是这样做的。如果“距离”仅由晶格直线段组成,那么毕达哥拉斯将给出错误的答案。考虑点(0,0)和(3,3)。毕达哥拉斯的距离是sqrt(18),小于5,但在晶格上距离是6。你的算法取决于你如何定义距离。如果它是一条直线,那么毕达哥拉斯定理就是这样做的。如果“距离”仅由晶格直线段组成,那么毕达哥拉斯将给出错误的答案。考虑点(0,0)和(3,3)。毕达哥拉斯的距离是sqrt(18),小于5,但在晶格上距离是6。