Java 具有多个可能端点的二维路径查找?
我想用Java做路径查找。然而,我觉得这是一个单独的问题 我在做游戏。路径查找需要能够处理多个可能的端点。我发现的所有路径查找算法和教程只有一个端点Java 具有多个可能端点的二维路径查找?,java,path-finding,endpoints,Java,Path Finding,Endpoints,我想用Java做路径查找。然而,我觉得这是一个单独的问题 我在做游戏。路径查找需要能够处理多个可能的端点。我发现的所有路径查找算法和教程只有一个端点 这种改变是很容易调整到已经存在的代码中,还是我最好从头开始编写自己的代码?如果您使用的是A*,但图形中有多个顶点可以被视为目标,您可以估计到每个目标的距离,并使用最小值A*只要你不高估到目标的真实距离就行 然而,这种特殊行为可能会导致您编写自己的A*实现。它不是很多代码;对于一个大学生来说,可能有一两天的家庭作业,IIRC。如果你使用的是a*,但你
这种改变是很容易调整到已经存在的代码中,还是我最好从头开始编写自己的代码?如果您使用的是
A*
,但图形中有多个顶点可以被视为目标,您可以估计到每个目标的距离,并使用最小值<代码>A*只要你不高估到目标的真实距离就行
然而,这种特殊行为可能会导致您编写自己的
A*
实现。它不是很多代码;对于一个大学生来说,可能有一两天的家庭作业,IIRC。如果你使用的是a*
,但你的图形中有多个顶点可以被视为目标,你可以估计到每个目标的距离,并使用最小值<代码>A*只要你不高估到目标的真实距离就行
然而,这种特殊行为可能会导致您编写自己的
A*
实现。它不是很多代码;对于一个大学生来说,可能需要一两天的作业,IIRC。我对游戏了解不多,但它是一个多端点最短路径算法。我对游戏了解不多,但它是一个多端点最短路径算法。有点过火了;它将为您提供所有可能的配对。这是其中的N*(N-1),有点过分;它将为您提供所有可能的配对。这是其中的N*(N-1)个。确实有效。A*基本上是做Dijkstra的一种改进方式;它优化了常见的典型案例。如果两个目标与出发点相反,可能会有点慢。你会快速进步到一个点,然后需要检查另一边的很多点。但这是不可避免的。这确实有效。A*基本上是做Dijkstra的一种改进方式;它优化了常见的典型案例。如果两个目标与出发点相反,可能会有点慢。你会快速进步到一个点,然后需要检查另一边的很多点。但这是不可避免的。