📄 readme.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 + -