送给大家暖手的A*下午茶

送给大家暖手的A*下午茶

閱讀本文約花費: 2 (分鐘)

送给大家暖手的A*下午茶

天气严寒,相信大家都手冷了吧;

闲来无事,研究了一下A*算法,关于A*算法,大家可以参考$website(这是老外写的,很好,很清晰,同时还有热心人士提供的中意法德俄等诸国版本);

另,Google到一篇Matrix上一个很古老的帖子,还是依靠Google snapshot得看,提供了作者的A*代码实现;

我自己想出一个题目,实现了代码如下(其间部分code参考了上述老兄的code),

各位童鞋愿意coding实现的可以试试手,高手可以参与,如能看看不才code并提出批评指正,或给出更优code实现的话,更是感激不尽啦;

让温暖的冬日用大家的热情点燃吧;

问题说明:

  一个grid,在其上,可设定2个起始点A-物体X、B-物体Y,终点E,障碍物T若干,点击开始寻路,A、B开始自动寻路并达到E点;

(anchor)在X、Y路径没有在某一时刻重叠(即当前A、B的path位于同一点)的情况下,若X达到E点,则等待Y点到达E点(也可设置X到达后就开始),然后随机产生grid上2个障碍物T,然后X寻路到A、Y寻路到B,若X、Y之一率先达到且其间没有交点,则等待另一物体达到A/B,然后随见产生grid2个障碍物,再由A、B点各自寻路到E;转至anchor;

若在某一时刻,X、Y重合,则停止,并绽放爆炸效果。

代码附件:

实现:

使用applet

No tags for this post.

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll Up