一种游戏路径搜索的简化方法

文档序号:6558295阅读:262来源:国知局
专利名称:一种游戏路径搜索的简化方法
技术领域
本发明涉及一种游戏路径搜索的简化方法。这种方法实际是一种简要算法,在实际游戏中能快速的捜索到其路径,而且是最短的。
背景技术
在当今的网络时代,游戏已到处都有,但随着大型游戏的出现,计算机资源已渐渐被消耗,如何解决利用极小的计算机资源去完成复杂的动作,比如游戏路径搜索,这种算法如果不够准备会导致计算机资源及内存消耗完也难达到预期的目的,所以在开发游戏中,怎样解决计算机资料的合理使用将成为很重要的任务
发明内容

针对以上的不足,本发明的目的是提出一种游戏路径搜索的简化方法,是ー种可控(directed)算法、即算法本身并不会盲目地捜索路径(比如迷宫的耗子),而是估计ー个最佳的考察方向,有时也回溯尝试其余方向。A*通过创建与位置的节点在地图移动,这些节点是用来记录搜索进度的。除了保持在地图中的位置,每ー个节点还有三个重要的属性,通常叫做f,g和h,有时分别称之为适宜性(fitmess),目标(goal),和启发的(heuristic)。g是从起始节点到该节点的代价。虽然从起点节点到该节点的位置有很多不同的路径,但该节点仅代表单一路径。h是从该节点到目标节点估计代价。这里h意思是受训的猜测(educatedguess),因为并不知道实际的代价。f是g和h的和。f代表对这条经过该节点的路径最好的猜测和估计,其中F的值越小,则认为这条路径越好。f,g和h的目的是用数量确定该点一条路径的好坏。g的大小是可以完全计算出来的,即来到当前节点所需的代价。因为已知来到当前节点的所有节点,所以g的值可以精确确定。然而,h则是ー个完全不同的东西。因为并不知道从该节点到目标节点还有多远,我们被迫进行猜測。当猜得越准,那么f的值就越接近真实值,而A*的速度也就越快,能够只费少许的工夫就找到目标。另外A*保持两个表0pen表和Closed表。Open表由未考察的节点组成,而Closed表由已考察的节点组成。当算法已经检查过与某个节点相连的所有节点,计算出它们的f,g和h的值,并把它们入入OPEN表,经待考察,则称这个节点为“已考察的”。因为没有独特的节点,所以Open表和Closed表是必须的。例如,如果从(0,0)开始移动到(0,I),那么再移回(0,0)也是无可挑剔而有效的。因此必须明确知道哪些节点已被考察和创建,这就是Open表和Closed表的作用。以下是此方法的分解I)令P—起始节点。
2)把f,g和h的值赋给P3)将P添加入Open表。此时P是Open表中惟一的节点。4)令B = Open表中的最佳节点(最佳的意思是该节点的f值最小)(I)如果B是目标节点,则退出。此时已找到一条路径。(2)如果Open表为空,则退出。此时没有找到路径。5)令C等于ー个与B相连的有效节点。(I)把f, g和h的值赋给C。(2)检查C是在Open表里还是在Close表里。①若在Close表中,则检查新路径是否比原先更好(f值小),若是则采用新的路·径。②否则把C添加入Open表。对所有B的有效子孙节点重复第5)步.6)重复第4步.
具体实施例方式首先把起始格添加到开启列表。ニ是重复如下的工作a)寻找开启列表中F值最低的格子,我们称它为当如格;b)把它切换到关闭列表;c)对相邻的8格中的甸一个,*如果它不可通过或者已经在关闭列表中,略过它。反之如下。*如果它不在开启列表中,把它添加进去。把当前格作为这一格的父节点。记录这一格的F,G,和H值。*如果它已经在开启列表中,用G值为參考检查新的路径是否更好。更低的G值意味着更好的路径。如果是这样,就把这一格的父节点改成当前格,并且重新计算这一格的G和F值。如果你保持你的开启列表按F值排序,改变之后你可能需要重新对开启列表排序。d)停止,当你*把目标格添加进了开启列表,这时候路径被找到,或者*没有找到目标格,开启列表已经空了。这时候,路径不存在。3.保存路径。从目标格开始,沿着每一格的父节点移动直到回到起始格。这就是你的路径。
权利要求
1.一种游戏路径搜索的简化方法其特征主要包括A*通过创建与位置的节点在地图移动,这些节点是用来记录搜索进度的。除了保持在地图中的位置,每ー个节点还有三个重要的属性,通常叫做f,g和h,有时分别称之为适宜性(fitmess),目标(goal),和启发的(heuristic)。
g是从起始节点到该节点的代价。虽然从起点节点到该节点的位置有很多不同的路径,但该节点仅代表单一路径。
h是从该节点到目标节点估计代价。这里h意思是受训的猜测(educatedguess),因为并不知道实际的代价。
f 是g和h的和。f 代表对这条经过该节点的路径最好的猜测和估计,其中F的值越小,则认为这条路径越好。
f,g和h的目的是用数量确定该点一条路径的好坏。g的大小是可以完全计算出来的,即来到当前节点所需的代价。因为已知来到当前节点的所有节点,所以g的值可以精确确定。然而,h则是ー个完全不同的东西。因为并不知道从该节点到目标节点还有多远,我们被迫进行猜測。当猜得越准,那么f的值就越接近真实值,而A*的速度也就越快,能够只费少许的工夫就找到目标。
另外A*保持两个表0pen表和Closed表。Open表由未考察的节点组成,而Closed表由已考察的节点组成。当算法已经检查过与某个节点相连的所有节点,计算出它们的f,g和h的值,并把它们入入OPEN表,经待考察,则称这个节点为“已考察的”。
2.根据权利要求I的述游戏路径搜索的简化方法,其特征是A*需要ー个存储类来保持A*的节点往返移动的数据,以及保存传统的Open和Closed表。它还返回各个表上开销最小的节点。这个存储容器的选择会影响A*程序的最大性能。
ー个通用目标类最奇妙部分是它保持着适合于当前A*任务的任何信息。
全文摘要
游戏路径搜索的简化方法这种方法我们称之为A*(A星)算法,其算法是要在地图中的两点之间找出一条路径。如果存款额至少一条路径,在各种不同的路径搜索算法中,A*将找到最短路径,而且相比之下算法速度快,这也是与其他算法不同的一种方法。A*是一种可控(directed)算法、即算法本身并不会盲目地搜索路径(比如迷宫的耗子),而是估计一个最佳的考察方向,有时也回溯尝试其余方向。所以,A*算法录活多变,不拘一格。
文档编号G06F19/00GK102841974SQ20111017230
公开日2012年12月26日 申请日期2011年6月24日 优先权日2011年6月24日
发明者杨际荣 申请人:镇江华扬信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1