本发明专利技术公开了一种基于A*算法的地图寻路方法,适于在计算设备中执行,该地图包括具有多个节点的阵列,该计算设备包括列表存储器,该列表存储器中存储有开启列表及删除列表,该方法包括步骤:判断阵列中节点的数量是否小于预定值,如果确定该阵列中节点的数量小于预定值,则将开启列表建成双向链表;监控阵列,获取地图寻路的开始节点及目标节点,并将开始节点加入双向链表;删除双向链表表头的节点,且将删除的双向链表表头的节点加入删除列表;以及判断所删除的双向链表表头的节点是否为目标节点,如果删除的双向链表表头的节点为目标节点,则继续监控阵列。本发明专利技术还提供了一种地图寻路设备及包括根据本发明专利技术的地图寻路设备的计算设备。
【技术实现步骤摘要】
一种基于A*算法的地图寻路方法、设备及计算终端
本专利技术涉及电子地图领域,尤其涉及一种基于A*算法的地图寻路方案。
技术介绍
目前,越来越多的软件和应用都需要生成并向用户呈现地图以便实现某种功能。例如,在游戏软件应用中,计算设备(如台式计算机、笔记本计算机及其他智能终端)需要生成游戏场景地图。在该地图中,游戏玩家控制的角色以及非玩家控制的角色需要按照一定的路径进行移动,因此会涉及到地图寻路以对路线选择并且避开障碍点。除了在游戏中需要进行地图寻路之外,一些涉及路径的应用中也需要使用地图寻路方案。在多种寻路应用方案中,所涉及的A*算法是一种启发式搜索算法。在应用A*算法的寻路方案中,会对地图中的多个节点进行判断。在寻路过程中,会不断将未判断的节点加入一个列表,即开启列表,而将已经判断过的节点加入到另一个列表,即删除列表。在寻路过程中会不断的对开启列表进行操作,包括了节点的插入、排序和检索等。根据开启列表中数据和各种操作的特点,需要对开启列表的数据结构以及插入、排序等操作进行控制,以便降低操作的时间复杂度。现有的方案中多利用二叉堆方法对开启列表进行操作。然而,由于二叉堆在实现上比较复杂,处理难度较高,因此在地图节点较少时,采用二叉堆的操作方式则性价比较低。因此,需要一种新地图寻路方案,能够对地图进行判断,并当地图节点较少时,以更高的操作效率进行寻路。
技术实现思路
为此,本专利技术提供一种新的方案以力图解决或者至少缓解上面存在的问题。根据本专利技术的一个方面,提供了一种基于A*算法的地图寻路方法,适于在计算设备中执行,该地图包括具有多个节点的阵列,该计算设备包括列表存储器,该列表存储器中存储有开启列表及删除列表,该开启列表包括待寻路检测的节点,该删除列表包括从开启列表中删除的节点。该方法包括步骤,判断所述阵列中节点的数量是否小于预定值,如果确定该阵列中节点的数量小于预定值,则将所述开启列表建成双向链表;监控所述阵列,获取地图寻路的开始节点及目标节点,并将所述开始节点加入所述双向链表;删除该双向链表表头的节点,且将所删除的双向链表表头的节点加入删除列表;以及判断所删除的双向链表表头的节点是否为目标节点,如果所述删除的双向链表表头的节点为目标节点,则继续监控所述阵列,如果该删除的双向链表表头的节点不是目标节点,则获取该删除的双向链表表头的节点周围满足预定条件的节点,并将所获取满足所述预定条件的节点加入所述双向链表;以及继续删除该双向链表表头的节点,且将所删除的双向链表表头的节点加入删除列表。可选地,在根据本专利技术的地图寻路方法中,获取删除的双向链表表头的节点周围满足所述预定条件的节点的步骤包括,获取删除的所述双向链表表头的节点能直接到达、不属于所述删除列表且非障碍的节点。可选地,根据本专利技术的地图寻路方法还包括步骤,当确定所述删除的双向链表表头的节点为目标节点时,根据所述删除列表中的节点获取所述开始节点与所述目标节点之间的最短路径。可选地,在根据本专利技术的地图寻路方法中,预定值的范围为1000。可选地,在根据本专利技术的地图寻路方法中,将所获取满足所述预定条件的节点加入所述双向链表的步骤包括:将所述双向链表的节点进行排序;以及将该满足所述预定条件的节点以插入排序方式加入到所述双向链表。根据本专利技术的另一个方面,提供了一种基于A*算法的地图寻路设备,该地图包括具有多个节点的阵列,该设备包括列表存储器、第一处理器、监控器、第二处理器及第三处理器。列表存储器适于存储开启列表及删除列表,该开启列表包括待检测的节点,该删除列表包括从开启列表中删除的节点。第一处理器适于判断所述阵列中节点的数量是否小于预定值,如果确定该阵列中节点的数量小于预定值,则将所述开启列表建成双向链表。监控器适于监控所述阵列,以获取地图寻路的开始节点及目标节点,并将所述开始节点加入所述双向链表;第二处理器适于删除该双向链表表头的节点,并将所删除的双向链表表头的节点加入删除列表;以及第三处理器适于判断所删除的双向链表表头的节点是否为目标节点,如果所述删除的双向链表表头的节点为目标节点,则指示所述监控器继续监控所述阵列,如果该删除的双向链表表头的节点不是目标节点,则获取该删除的双向链表表头的节点周围满足所述预定条件的节点,并将所获取的满足所述预定条件的节点加入双向链表,以及指示第二处理器继续删除该双向链表表头的节点,且将所删除的双向链表表头的节点加入删除列表。可选地,在根据本专利技术的地图寻路设备中,第三处理器根据下述方式获取所述删除的双向链表表头的节点周围满足所述预定条件的节点,获取所述删除的所述双向链表表头的节点能直接到达、不属于所述删除列表且非障碍的节点。可选地,在根据本专利技术的地图寻路设备中,第三处理器还适于:当确定所述删除的双向链表表头的节点为目标节点时,根据所述删除列表中的节点获取所述开始节点与所述目标节点之间的最短路径。可选地,在根据本专利技术的地图寻路设备中,预定值的范围为1000。可选地,在根据本专利技术的地图寻路设备中,第三处理器根据下述方式将所获取满足所述预定条件的节点加入所述双向链表:将所述双向链表的节点进行排序;以及将该满足所述预定条件的节点以插入排序方式加入到所述双向链表。根据本专利技术的又一个方面,提供一种计算终端,该计算终端包括上述中任一种地图寻路设备。根据本专利技术的基于A*算法的地图寻路方案,通过对地图规模的判断以及确定地图规模较小时,然后对开启列表采用双向链表结构,在此基础上对开启列表进行插入、删除及排序等操作,实现了地图寻路的简单操作、资源开销较小以及时间复杂度较低。附图说明为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。图1示出了一个移动终端的结构框图;图2示出了根据本专利技术一个实施例的基于A*算法的地图寻路设备的示意图;图3示出了根据本专利技术一个实施例的基于A*算法的地图寻路方法的流程图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1是移动终端100的结构框图。移动终端100可以包括存储器接口102、一个或多个数据处理器、图像处理器和/或中央处理单元104,以及外围接口106。存储器接口102、一个或多个处理器104和/或外围接口106既可以是分立元件,也可以集成在一个或多个集成电路中。在移动终端100中,各种元件可以通过一条或多条通信总线或信号线来耦合。传感器、设备和子系统可以耦合到外围接口106,以便帮助实现多种功能。例如,运动传感器110、光传感器112和距离传感器114可以耦合到外围接口106,以方便定向、照明和测距等功能。其他传感器116同样可以与外围接口106相连,例如定位系统(例如GPS接收机)、温度传感器、生物测定传感器或其他感测设备,由此可以帮本文档来自技高网...
【技术保护点】
一种基于A*算法的地图寻路方法,适于在计算设备中执行,该地图包括具有多个节点的阵列,该计算设备包括列表存储器,该列表存储器中存储有开启列表及删除列表,该开启列表包括待寻路检测的节点,该删除列表包括从开启列表中删除的节点,该方法包括步骤:判断所述阵列中节点的数量是否小于预定值,如果确定该阵列中节点的数量小于预定值,则将所述开启列表建成双向链表;监控所述阵列,获取地图寻路的开始节点及目标节点,并将所述开始节点加入所述双向链表;删除该双向链表表头的节点,且将所删除的双向链表表头的节点加入删除列表;以及判断所删除的双向链表表头的节点是否为目标节点,如果所述删除的双向链表表头的节点为目标节点,则继续监控所述阵列,如果该删除的双向链表表头的节点不是目标节点,则获取该删除的双向链表表头的节点周围满足预定条件的节点,并将所获取满足所述预定条件的节点加入所述双向链表;以及继续删除该双向链表表头的节点,且将所删除的双向链表表头的节点加入删除列表。
【技术特征摘要】
1.一种基于A*算法的地图寻路方法,适于在计算设备中执行,该地图包括具有多个节点的阵列,该计算设备包括列表存储器,该列表存储器中存储有开启列表及删除列表,该开启列表包括待寻路检测的节点,该删除列表包括从开启列表中删除的节点,该方法包括步骤:判断所述阵列中节点的数量是否小于预定值,如果确定该阵列中节点的数量小于预定值,则将所述开启列表建成双向链表;监控所述阵列,获取地图寻路的开始节点及目标节点,并将所述开始节点加入所述双向链表;删除该双向链表表头的节点,且将所删除的双向链表表头的节点加入删除列表;以及判断所删除的双向链表表头的节点是否为目标节点,如果所述删除的双向链表表头的节点为目标节点,则继续监控所述阵列,如果该删除的双向链表表头的节点不是目标节点,则获取该删除的双向链表表头的节点周围满足预定条件的节点,并将所获取满足所述预定条件的节点加入所述双向链表;以及继续删除该双向链表表头的节点,且将所删除的双向链表表头的节点加入删除列表,其中,将所获取满足预定条件的节点加入所述双向链表的操作包括:重新计算双向链表中每个节点的实际代价,以更新每个节点的估价函数值,将所述双向链表的节点进行排序,将该满足所述预定条件的节点以插入排序方式加入到所述双向链表。2.如权利要求1所述的地图寻路方法,其中所述获取所述删除的双向链表表头的节点周围满足所述预定条件的节点的步骤包括:获取所述删除的所述双向链表表头的节点能直接到达、不属于所述删除列表且非障碍的节点。3.如权利要求1所述的地图寻路方法,还包括步骤:当确定所述删除的双向链表表头的节点为目标节点时,根据所述删除列表中的节点获取所述开始节点与所述目标节点之间的最短路径。4.如权利要求1所述的地图寻路方法,其中所述预定值的范围为1000。5.一种基于A*算法的地图寻路设备,该地图包括具有多...
【专利技术属性】
技术研发人员:罗响,
申请(专利权)人:厦门飞游信息科技有限公司,
类型:发明
国别省市:福建;35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。