A*寻路算法

A*寻路算法是一种启发式的路径搜索算法,多用于游戏中的人物移动计算。


算法介绍:


由于中间有障碍物阻隔,我们无法从A直接移动到B。所以我们需要试探。

A*算法需要构建两张表:

Open表:用来记录下一步可以移动到的位置。

Close表:用来记录已经移动到的点和当前节点的信息。

判断移动到哪一个位置,需要计算一个和值F:

F=H+G;

H:为预计从下一个节点到最终节点的花费。可以用各种各样的办法估计,取直线距离做估值也可以。越精确的算法带来的效果就越好。

G:为计算从初始节点到当前节点的花费。


过程:

A为起始节点,将A放入Close表中,并将A周围的8个节点放入Open表中,并记录相应的F、H、G值。

在上下左右各个方向,移动一格的花费为10,在左上、右上、左下、右下,移动一格的花费为14。


蓝色点为:Close表中的点。

红色点为:Open表中的点。

计算完成后,从Open表中选出F值最小的位置点,放入Close表中,然后加入新的可以移动到的节点,并计算相应的F值。


重复以上操作,我们可以看到最后的结果为


最后确定唯一的路径,首先从B点出发,按照Close表中的数据,按照箭头方向回溯到A点。

从中可以看出,其本质上为在广度优先搜索的基础上加入了预估计机制的一种试探性路径避障搜索算法。


转载自http://blog.youkuaiyun.com/yiyikela/article/details/46134339

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值