A*寻路演示程序,希望高手来进一步优化

sftk 2005-07-25 03:32:29
本程序是在 空明流转 代码(http://blog.gameres.com/thread.asp?BlogID=170&threadid=11463)基础上修改得来,
参考了 林伟 的思想(http://blog.csdn.net/skywind/archive/2002/11/14/6076.aspx)
主要改进处:
1,所有节点在载入地图时构建,寻路时只传地址,提高了效率。
2,取消了closed表,代用标志位表示,open表用STL中priority_queue构造。
3,可以进行多次寻路而不必修改原来走过的节点。
4,只需修改地图路径便可以处理不同的字符地图(障碍物和路径字符随意设定)

map1.dat,map2.dat为地图文件,该路径可由AStarDemo.cpp设置。
第一行代表地图的宽和高
第二行代表起点坐标
第三行代表终点坐标
第四行代表表示障碍物和表示路径的字符
其余为地图
地图坐标系自左上角为(0,0)点,右为正X,下为正Y

我用自己写的测试类(o_time.h)测量寻路时间(精度很高),演示程序中分别测量了一次寻路和1000次寻路的时间,自我感觉还不错(虽然赶不上林伟的程序),若你能进一步优化(程序结构,寻路速度),请一起分享。

源代码下载:http://bbs.gameres.com/showthread.asp?threadid=33460
...全文
262 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
galois_godel 2005-10-02
  • 打赏
  • 举报
回复
这个需要A*嘛
你读地图的效率就是O(w*h),
即便后面你用bfs,总的效率也是O(w*h),
minlingtianxia 2005-09-30
  • 打赏
  • 举报
回复
路过
dragonfly001 2005-09-26
  • 打赏
  • 举报
回复
頂.........
rocpeng 2005-08-05
  • 打赏
  • 举报
回复
h(n)是否考虑用城镇距离,计算量少一点。


================================================================
此帖通过csdn小助手回复。
CSDN小助手是使用vb.net编写的CSDN论坛脱机“外挂”,她能够在
脱离IE的情况下使用Csdn论坛。程序只加载最核心的数据,所以显示更
快,产生的流量更小。

下载地址:http://qqwwee.com/csdn.rar
================================================================
rocpeng 2005-08-05
  • 打赏
  • 举报
回复
程序风格很好,先赞一下,然后再去细看。


================================================================
此帖通过csdn小助手回复。
CSDN小助手是使用vb.net编写的CSDN论坛脱机“外挂”,她能够在
脱离IE的情况下使用Csdn论坛。程序只加载最核心的数据,所以显示更
快,产生的流量更小。

下载地址:http://qqwwee.com/csdn.rar
================================================================
sftk 2005-07-31
  • 打赏
  • 举报
回复
呵呵,怎么都是 来顶下,程序并没多么复杂,就没人优化吗?
snowbirdfly 2005-07-31
  • 打赏
  • 举报
回复
同情楼主,由于刚入门,未能帮上忙,但是还是支持楼主!
sftk 2005-07-26
  • 打赏
  • 举报
回复
人真是少,看来100分浪费了
dragonfly001 2005-07-26
  • 打赏
  • 举报
回复
MARK
sftk 2005-07-25
  • 打赏
  • 举报
回复
忘了说了,程序是用VC7.1写的,用VC6编译的话需要修改些地方,压缩包里有个exe文件

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧