A*寻路算法入门(六)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)


免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!

步骤3

我们再一次选择最小F值(5)的瓦块去继续迭代:

这时,只有一个可能的瓦块被添加到开放列表中,因为一个瓦块已经存在于闭合列表,两个瓦块是墙壁.

步骤4

现在我们遇到了一个有趣的情况.正如你在前一张图中看到的,这里有4个方块,它们的F值都是相同的7 — 我们该怎么办呢?!

这里有很多种解决方案可以使用,但是一个简单(也是快速的)的方法是保持跟随最近被添加到开放列表中的瓦块.所以我们从最近的瓦块继续:

这次有2快瓦块是邻接且可到达的,我们像往常那样计算它们的分值.

步骤5

我们再一次面临选择最小分值的(7)瓦块,同样选择最近添加的瓦块:

只有1个可能的瓦块被添加.我们离终点越来越近了!

步骤6

你现在已经有经验了!我打赌你可以像下图那样猜出接下里的步骤:

我们几乎完成了,但是这次你可以看到,这里实际我们可以从2条到骨头的最短路径中选择:

在我们的例子中有2条不同的最短路径:

  • 1-2-3-4-5-6
  • 1-2-3-4-5-7

我们选择哪条无所谓,由后面实际的实现代码来决定.

步骤7

让我们再一次枚举一遍这些方块:

Aha,骨头现在在开放列表中了!

步骤8

此时目的方块在开放列表中,算法将其添加到闭合列表中去:

然后算法要做的只是回退去计算出最终的路径!

时间: 2024-09-18 00:21:10

A*寻路算法入门(六)的相关文章

A*寻路算法入门(一)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 该篇博客由iOS课程团队的Johann Fradj发布,他现在是一个全职开发iOS的开发者.他是Hot Apps Factory(其是App Cooker的创造者)的共同创建

A*寻路算法入门(二)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 一只寻路的猫咪(本猫猪也是路痴,猫猪注.) 让我们想象我们有一个游戏,游戏中一只猫咪想要找到得到骨头的路径. "为毛一只在世界上的猫咪想要一根骨头呢?!"你可能会这

A*寻路算法入门(七)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 一只没有远见的猫咪 在上面的例子中,我们看到猫咪在选择最短路径的时候,它总是选择最好的方块(在未来最短路径中的一块) - 就像他它是一只有远见的猫咪一样! 但是如果这只猫咪不

A*寻路算法入门(四)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 路径评分 我们将给每一个正方形一个分值 G + H : G是从开始点A到当前方块的移动花费.所以对于一个开始A点的邻居方块来说,值为1,但是离开开始点越远它的值会越大. H是

A*寻路算法入门(五)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 关于A*算法 现在你该知道如何计算每一个方块的分值了(我们将称之为F,它等于G+H),让我们看看A*算法是如何工作的. 这只猫咪将用以下重复的步骤来找到最短路径: 从开发列表

如何在Cocos2D游戏中实现A*寻路算法(六)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 然而,就像你在玩时发现的那样,你将看到一堆的问题: 这只猫咪看起来有点僵硬 这只猫咪并没有将骨头拿走 这只猫咪可以直接穿过狗狗(即使没有任何骨头)而不被咬 如果你在前一个移动

A*寻路算法的lua实现

前言:又好久没写blog了,感觉有点"颓废"了,最近认识好多好多同龄人,也是大学刚毕业,觉得他们很优秀,认识到自己跟他们的差距,有点自愧不如.没写blog当然也有一部分原因是因为工作,本来经验就有点欠缺,还要承担起一个项目的压力,原本国庆回去就要把这个寻路的功能改进一下,结果第一次去女朋友家了就没碰电脑,回上海来的第一个夜晚满脑子全是心事,早上凌晨四点就在床上辗转睡不着了,这个月随着项目的进行感觉压力也越来越大,上班时期天天六点多就醒了睡不着,希望挺过这段适应期.关于寻路问题,在几个月

ActionScript 3.0(as3)实现的A*寻路算法源代码下载

曾经写过A*寻路算法的教程,但没有贴出任何代码,这次代码全都贴出,大家可以进一步学习我只是按照A*的基本思想,将A*寻路算法用AS3实现了一下,没有做太多的寻路优化等如果你本身已经会用A*寻路算法了,那么下面的代码也不必研究了代码中注释很多,就不贴过多的解释看代码以前,可以先看看下面这两篇文章,或者看代码的时候配合例子和教程来看A*(A星)寻路算法讲解A*寻路算法,DEMO展示在DEMO展示中,有三个版本,由于代码写了很久了,我也不记得下面贴出的代码是哪个版本的了,见谅.. 首先是文档类Inde

深入理解游戏中寻路算法

如果你玩过MMOARPG游戏,比如魔兽,你会发现人物行走会很有趣,为了模仿人物行走的真实体验,他们会选择最近路线达到目的地,期间会避开高山或者湖水,绕过箱子或者树林,直到走到你所选定的目的地. 这种看似寻常的寻路在程序实现起来就需要一定的寻路算法来解决,如何在最短时间内找到一条路径最短的路线,这是寻路算法首先要考虑的问题. 在这篇文章中我们会循序渐进来讲解寻路算法是如何演进的,你会看到一种算法从简单到高效所遇到的问题,以及精进的过程,带着问题来阅读,理解更快. 本篇主要包含以下内容: 1.图 2