寻路算法之A*
来源:互联网 发布:淘宝为什么是O2O 编辑:程序博客网 时间:2024/05/16 17:47
最近接触到MOBA(Multiplayer Online Battle Arena)这个新名词,发现npc寻路有点意思。于是回顾了一下经典的A*算法。
相关数据结构
- open列表:记录可用来被寻找的点
- closed列表:记录排除在路线之外的点
- 对于路线中的一个点:
3.1 G值:从开始到此点的移动量
3.2 H值:从此点到终点的估计移动量,一般为不考虑障碍的最短距离。
3.3 F值:等于G+H,此值的含义是选取当前点的一个评价值,即如果此值越小,表明选此点后,离终点越近。
算法
- 初始化
将起点加入open列表 循环开始
从open列表取出一个G+H值最小的点,并将此点加入closed列表
由于open列表中会有若干个具有同样G+H值的点,为了快速,自己习惯在此引入DFS:优先选取其中G值较大的点
遍历每一个与此点相通的点:
如果此点在closed列表中,则跳过;
如果此点不在open列表中,计算相应的值,并将此点加入open列表;
如果此点在open列表中,检查如果新的G+H值小于原值,则更新此点的G值与H值;
- 结束条件
直到终点从open列表中挑出。
代码
代码
0 0
- 寻路算法之A*
- JS算法之A*(A星)寻路算法
- A*算法寻路之Ogre实践
- A*算法寻路之Ogre实践
- A*算法寻路之Ogre实践
- 寻路算法 之 A*寻路
- 人工智能 之 A* 寻路算法剖析
- A*算法程序之二------A*寻路初探
- A*寻路算法
- A* 寻路算法
- A* 寻路算法
- A*寻路算法
- A*寻路算法
- A*寻路算法
- A*寻路算法
- A* 寻路算法
- A*寻路算法
- A* 寻路算法
- 根证书
- FIle 文件操作,包括文件的复制、删除以及zip和rar格式的解压操作
- C#实现AES加解密
- SpringMVC注解开发springmvc.xml的配置
- Photon Unity Networking 案例(一)
- 寻路算法之A*
- EV:GP定时器和PWM输出
- 13种排序算法详解(相当清楚,还附有flash动画)
- java 导入导出pdf
- 直方图均衡化原理和编码实现(C/C++)
- Python 模块之time
- elasticsearch配置文件详解
- 文本关键词算法原理总结
- http 协议注意事项