C#开发的OpenRA游戏之基地工程车移动9
前面已经分析了A*算法的启发函数,在这里采用的8方向对角线移动的方案,所以采用了对角线距离计算公式。这样对于评估函数的任务就已经完成了,只要把当前坐标和目标坐标输入此公式就可以计算当前位置的成本开销。
此函数的定义如下:
protected Func<CPos, int> DefaultEstimator(CPos destination)
由此可见,它是采用地图里CPos作为输入坐标,也就是网格位置作为坐标。
因为A*算法大体如下:
算法实现(路径搜索)
创建两个表,OPEN表保存所有已生成而未考察的节点,CLOSED表中记录已访问过的节点。
算起点的h(s);
将起点放入OPEN表;