任何人都知道,一些用于路径查找算法测试的工具。我可以在 2d 网格上测试我自己编写的寻路算法。像这样的东西http://topfat.blogspot.com/ 但是我可以在哪里编写和运行我自己的算法。它可以使用任何编程语言。我几乎可以将我的代码调整为任何编程语言。
问问题
1265 次
1 回答
0
您是否检查了路径查找算法工具的源代码?我是开发人员之一,该工具是开源的(Java)。例如,您的算法应该实现的接口是
public interface PathFindingAlgorithm {
/**
* Method for finding path from given start point to goal point
* using Map object. Found path (if any) depends on path finding algorithm
* class that overrides this method.
*
* @param start the point where the search begins
* @param goal the goal point
* @param map Map object the path finding algorithm uses
* @return SearchResult object containing path and possibly other relevant information
* about the search and <code>null</code> if no path is found.
*/
public SearchResult findPath(Point start, Point goal, Graph graph);
添加算法的类(http://code.google.com/p/topfat/source/browse/trunk/src/algorithms/PathFindingAlgorithms.java):
public class PathFindingAlgorithms {
private Vector<PathFindingAlgorithm> algorithms;
public PathFindingAlgorithms() {
this.algorithms = new Vector<PathFindingAlgorithm>();
addAlgorithm(new AStarAlgorithm());
addAlgorithm(new DijkstraStyleAlgorithm());
}
public Vector<PathFindingAlgorithm> getAlgorithms() {
return algorithms;
}
public void addAlgorithm(PathFindingAlgorithm algorithm) {
if (! this.algorithms.contains(algorithm)) {
this.algorithms.add(algorithm);
}
}
public void removeAlgorithm(PathFindingAlgorithm algorithm) {
this.algorithms.remove(algorithm);
}
我不记得这是否也将所有需要的东西添加到 GUI 中。几年前我们这样做了,所以代码(当然)并不完美。此应用程序中最简单的情况是 Dijkstra,如果您需要更复杂的东西,请检查 A*。
您可以从 Google 代码http://code.google.com/p/topfat/查看。如果您做了您想做的事情,我们也可以为您添加写入权限。
于 2012-04-20T06:13:29.990 回答