A*寻路算法
写代码中,这周内搞定
输入
1,一张m x n的地图。
2,起始坐标,终点坐标。
输出
一个连续的最短路径
准备
1,openList
2,closeList
3,一个二叉堆的容器
算法
1,可以向8个方向移动,上下左右为1,斜边约等于1.4,为除去小数计算写成10和14。F=G+H(G:从起点移动到当前方格的移动代价,父亲的G值加上10或者14。H:从指定方格到终点的估计代价,忽略障碍物和斜边,到终点最短的代价。)
2,把起点加入openList。
3,重复过程:
在openList取出F最小的点,把它左右当前处理的点。
把这个点移到closeList。
对当前方格的8个相邻方格的每一个方格:
如果是障碍物或者在closeList中就忽略。
如果不在openList中就把它加入openList,并且把当前方格设置为它的父亲,记录FGH的值。
如果在openList中,比较G值,选择最小的。
4,如果把终点找到了,则找到路径。如果openList为空,则没有路径。