A*寻路算法入门(五)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)
免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!
关于A*算法
现在你该知道如何计算每一个方块的分值了(我们将称之为F,它等于G+H),让我们看看A*算法是如何工作的.
这只猫咪将用以下重复的步骤来找到最短路径:
- 从开发列表中取得分值最小的方块,我们称之为方块S.
- 将方块S从开发列表中删除,并且添加到闭合列表中.
- 对于方块S的每一个可到达的邻居方块T:
A.如果T在闭合列表中:忽略它.
B.如果T不在开发列表中:把它添加进来并计算它的分值.
C.如果T已经存在于开放列表中:检查其F值是否比我们使用当前生成的路径要小.如果是,更新它的分值和它父方块.
如果你有点混乱也不用担心 — 我们将用一个例子一步步的像你展示它是如何工作的! :]
猫咪的路径
让我们通过一个例子看看这只懒猫咪是如何找到骨头的.
在下面的图示中,我已经将对应的值列出来了(F = G + H):
- F(方块的分值):左上角
- G(从A点到方块的花费):左下角
- H(从方块到B点的估计花费):右下角
同样,箭头显示出到达该方块的移动方向(指向其父方块.猫猪注).
最终,对于每一步来说,红色方块指示闭合列表,绿色方块指示开发列表.
OK,让我们开始吧!
步骤1
在第一步中,这只猫咪确定其起始位置(点A)的可到的达邻居方块,计算他们的F分值,然后将它们添加到开放列表中:
你可以看到每一个方块中列出了H值(2个为6,一个为4).我建议根据”街区距离”算法自己计算一下,确保你理解这部分是如何工作的.
同样要注意的是F值(左上角)正好是G+H的和(左下角和右下角).
步骤2
接下来,猫咪选择最小分值的方块,将其添加到闭合列表中去,并且获得他的邻居方块.
所以你将看到最小分值方块的F值为4,我们试图将所有它的邻居瓦块添加到开发列表中(并且计算它们的分值),除非它不能被添加(因为它已经在闭合列表中了)或者它是不可到达的(比如墙壁).
注意这里有2个新的瓦块被添加到开放列表中,G值被加1,因为从起始位置到它们有2个瓦块的距离.你可能想去用”街区距离”算法计算一下以确保你懂了了这些新添加瓦块的H值是如何计算的.
A*寻路算法入门(五)的更多相关文章
- A*寻路算法入门(七)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- A*寻路算法入门(三)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- A*寻路算法入门(二)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- A*寻路算法入门(一)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- A星寻路算法入门(Unity实现)
最近简单学习了一下A星寻路算法,来记录一下.还是个萌新,如果写的不好,请谅解.Unity版本:2018.3.2f1 A星寻路算法是什么 游戏开发中往往有这样的需求,让玩家控制的角色自动寻路到目标地点, ...
- A*寻路算法入门(六)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- A*寻路算法入门(四)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Andrew Ng机器学习算法入门((五):矩阵和向量
矩阵定义 数学上,一个m×n的矩阵是一个由m行n列元素排列成的矩形阵列 使用Aij来获取矩阵中第i行j列的数据 向量的定义 向量就是n行1列的特殊矩阵 由于向量仅仅只有1行,那么通过一个变量i来指定获 ...
- A星寻路算法介绍
你是否在做一款游戏的时候想创造一些怪兽或者游戏主角,让它们移动到特定的位置,避开墙壁和障碍物呢? 如果是的话,请看这篇教程,我们会展示如何使用A星寻路算法来实现它! 在网上已经有很多篇关于A星寻路算法 ...
随机推荐
- Tensorflow从入门到精通之——Tensorflow基本操作
前边的章节介绍了什么是Tensorflow,本节将带大家真正走进Tensorflow的世界,学习Tensorflow一些基本的操作及使用方法.同时也欢迎大家关注我们的网站和系列教程:http://ww ...
- 关于return的一些了解
写return是一种清晰的风格,可以防止一些意外的错误. 所以书上只说应该写,而不是必须写. 如果符合某个条件要退出的话,可以用return返回,否则可以不写这句代码的,当程序执行到"}&q ...
- Wcf host
Uri baseAddress = new Uri(uri);//var binding = new WebHttpBinding(WebHttpSecurityMode.None); var bas ...
- MySql配置文件模板
写在开篇: 这个mysql得配置文件my.cnf,是我现在环境里常用得,包含基础配置及一些优化,本来一直在我得有道笔记里记录着,之前一直没有写博客的习惯,最近刚开始注册博客,就将这些东西 ...
- 【博弈】【HDU】取石子游戏
取石子游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- Latex:TexStudio的使用
http://blog.csdn.net/pipisorry/article/details/54565608 Texsdudio 快捷键 The keyboard shortcuts can be ...
- ejabberd为游戏免除注册限制
ejabberd为游戏免除注册限制 (金庆的专栏 2016.11) ejabberd聊天服务器默认会限制同一IP注册帐号须间隔600s. 在游戏中需要为每个角色注册一个聊天帐号,不应该有此限制. 可以 ...
- jQuery中$(function()与(function($)等的区别详细讲解
(function($) {-})(jQuery); 这里实际上是匿名函数,如下: function(arg){-} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写上括号和实参的, ...
- Weblogic 12c 集群环境搭建
本文是在windows7操作系统下配置的,jdk版本1.7 ,weblogic版本12.1.3.0.0. 搭建集群前的规划 其中AdminServer是总控制端,server1.server2.ser ...
- Android support library支持包常用控件介绍(一)
谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现Material Design设计效果,官方给出了Android support design library 支 ...