游戏寻路——A*算法
来源:互联网 发布:矩阵a与b相似 编辑:程序博客网 时间:2024/04/19 21:14
A*其实是一种思想,采用启发式遍历来得到起始点到目标点的路径。
A*的基本思想:f(n) = g(n) + h(n);
其中,g(n)是从起始点到当前点V的实际代价,h(n)表示当前点V到目标点的代价估计,一般用两点间x,y坐标差的平方和表示。
则f(n)值就表示该点的估价值了,f值越低表示该点越优。
最佳路径就是一系列最优节点的集合。
算法描述:
1.把起始点加入到开启列表,开启列表表示将要搜索的点的集合。
2.重复如下的工作:
a.寻找开启列表中F值最低的点,我们把它称为当前点V。
b.把它添加到关闭列表,并把它从开启列表删除。
c.对它周围相邻的8个点:
*如果它在关闭列表或者不可通过,略过它
*如果它既不在开启列表,也不在关闭列表,则把它添加进开启列表,并把当前点V作为其父节点,记录改点的F,G,H值。
*如果其已经在开启列表,则比较该点新的G值和其旧的G值,如果新的G值要小,则更新该点的父节点为节点V,从新计算F,G,H值。(以上往开启列表添加节点或是更新节点的数据都要从新对开启列表排序)
d.停止
*如果把目标点添加进了关闭列表,这时候路径找到
或者*没有找到目标点,但是开启列表已经空了,这时候表示路径不存在。
3.保存路径。从目标点开始找其父节点,直到移动到起始点。这就是路径。
具体代码:
测试代码:
- 游戏寻路——A*算法
- 游戏寻路算法A*的实现
- A* 算法处理游戏自动寻路
- 浅谈游戏自动寻路A*算法
- 游戏开发中的自动寻路算法 A*算法
- A星算法(游戏寻路算法)的C++实现
- 《C++游戏开发》十六 游戏中的寻路算法(二):迷宫&A*算法基础
- 《C++游戏开发》十七 游戏中的寻路算法(三):A*算法原理
- J2ME平台A-RPG游戏怪物寻路算法初探
- J2ME平台A-RPG游戏怪物寻路算法初探
- J2ME平台A-RPG游戏怪物寻路算法初探
- J2ME平台A-RPG游戏怪物寻路算法初探
- J2ME平台A-RPG游戏怪物寻路算法初探
- J2ME平台A-RPG游戏怪物寻路算法初探
- J2ME平台A-RPG游戏怪物寻路算法初探
- J2ME平台A-RPG游戏怪物寻路算法初探
- J2ME平台A-RPG游戏怪物寻路算法初探
- J2ME平台A-RPG游戏怪物寻路算法初探
- EJB中映射关系实例
- linux下多线程和信号
- mssql exec xp_cmdshell 调用'CreateProcess'失败解决办法
- 优秀的Android学习资源
- safeengine虚拟机licence破解手记
- 游戏寻路——A*算法
- Android应用开发的几个小技巧
- 全局事务 与 本地事务
- 引用 JAVA POI导出EXCEL报表的操作
- 分析会话:COOKIE 和 SESSION
- sql解封代码(有后门,自行清除)
- 遍历对象
- k__BackingField与反编译
- k__BackingField与反编译