作者:锐亚教育(www.insideria.cn)
A*寻路
A*算法基本原理
A*(念作A星)算法对初学者来说的确有些难度。本文并不试图对这个话题作权威性的陈述,取而代之的是描述算法的原理,使你可以在进一步的阅读中理解其他相关的资料。下面我们就利用图文并茂的方式向大家展示它的基本原理。
简化搜索区域
如图1所示,假设有人想从A点移动到一墙之隔的B点,如下图,绿色的是起点A,红色是终点B,蓝色方块是中间的墙。
图1
首先注意到,搜索区域被我们划分成了方形网格。像这样,简化搜索区域,是寻路的第一步。这一方法把搜索区域简化成了一个二维数组。数组的每一个元素是网格的一个方块,方块被标记为可通过和不可通过两种。路径被描述为从A到B我们经过的方块的集合。一旦路径被找到,我们的人就从一个方格的中心走向另一个,直到到达目的地。
这些中间点被称为“节点”。当你阅读其他的寻路资料时,你将经常会看到人们讨论节点。为什么不把他们描述为方格呢?因为有可能你的路径被分割成其他不是方格的结构。他们完全可以是矩形,六角形,或者其他任意形状。节点能够被放置在形状的任意位置,可以在中心,也可以沿着边界,又或者