由于是基于坐标点的,所以移动路径非常费资源。找到了一个A*的路径算法,挺智能。 * G = 从起点A,沿着产生的路径,移动到网格上指定方格的移动耗费。 * H = 从网格上那个方格移动到终点B的预估移动耗费。这经常被称为启发式的,可能会让你有点迷惑。这样叫的原因是因为它只是个猜测。我们没办法事先知道路径的长度,因为路上可能存在各种障碍(墙,水,等等)。虽然本文只提供了一种计算H的方法,但是你可以在网上找到很多其他的方法。
最短路径算法 #include #include #define MAX 32767 #define ElemType char typedef char VertexData; const int Vn=4; const int En=8; class Graph{ public: VertexData vexs[Vn]; int AdjMatrix[Vn][Vn]; int a[Vn][Vn]; int path[Vn][Vn]; int LocationV(ElemType v); vo