⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 带加权的寻路算法演示(DELPHI源码) 关于A*寻路算法的代码在网上有很多
💻 TXT
字号:
 关于A*寻路算法的代码在网上有很多,但用DELPHI的比较少,本人花了一天时间找到这个,代码和界面都比较精炼,于是在关键处作了中文注释,但愿对朋友们有用。

 点击下载此文件

A*寻路算法简介

A*与最好优先算法的原理类似,只是最好优先算法在路经上给出了节点的代价,而A*算法需要F(NODE) = G(NODE)+H(NODE)的估价函数来估计当前点的代价。

最好优先算法的原理是(伪代码):

 Best_First_Search()
{
 Open = [起始节点];
 Closed = [];
 while (Open表非空)
 {
  从Open中取得一个节点X,并从OPEN表中删除。
  if (X是目标节点)
  {
   求得路径PATH;
   返回路径PATH;
  }
  for (每一个X的子节点Y)
  {
   if (Y不在OPEN表和CLOSE表中)
   {
    求Y的估价值;
    并将Y插入OPEN表中;
   }
   //还没有排序
   else if (Y在OPEN表中)
   {
    if (Y的估价值小于OPEN表的估价值)
     更新OPEN表中的估价值;
   }
   else //Y在CLOSE表中
   {
    if (Y的估价值小于CLOSE表的估价值)
    {
     更新CLOSE表中的估价值;
     从CLOSE表中移出节点,并放入OPEN表中;
    }
   }
   将X节点插入CLOSE表中;
   按照估价值将OPEN表中的节点排序;
  }//end for
 }//end while
}//end func

注意本例程的算法与伪代码还是有些区别,不然你会看糊涂的。:)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -