dqxie 发表于 2010-1-5 16:09:49

请教一下,zmud有堆栈的概念没有?
如果没有堆栈,有数组的概念没有?

我是菜鸟新手。。。大家不要鄙视啊

seagate 发表于 2010-1-5 16:55:37

关键是zmud没有结构类型概念,数组有,列表也有,缺少自定义结构,很多标准算法很难实现。否则简单的链表之类没有指针有结构也能实现,但是只有数组没有结构就没想法了。这个搜索算法有结构很简单,就是一个链表,你设定一个步深比如5,只要链表有5个元素就摘掉最后一个元素,倒数第二个元素取下一个方向继续找,就这样非常简单

oolong 发表于 2010-1-18 10:29:34

回复 10# 的帖子

回答你几个问题:
1.每步看npc不需要消耗任何时间,快到你想不到
2.区域遍历是如果你画地图时按一定顺序画,你走起来就是最快路径,也可以预先设置好房间
3.跨区用%mapquery(Zoneid= 1 or Zoneid =2 or Zoneid=3)就可以得到所有房间再搜索,当然可以预先设置好房间
4.固定迷宫不需要任何处理,只有特殊随机迷宫需要

oolong 发表于 2010-1-18 10:36:59

原帖由 seagate 于 2010-1-5 04:55 PM 发表 http://pkuxkx.com/forum/images/common/back.gif
关键是zmud没有结构类型概念,数组有,列表也有,缺少自定义结构,很多标准算法很难实现。否则简单的链表之类没有指针有结构也能实现,但是只有数组没有结构就没想法了。这个搜索算法有结构很简单,就是一个链表,你 ...

个人看法要从远处深度遍历,理由有两点:
1.你考虑到这种情况没有,你刚搜完这个房间,npc就过来了,你算法再强还是徒劳。。。
2.本身只搜索范围5的房间就没几个房间,多走走任务成功率高

seagate 发表于 2010-1-18 13:33:01

我现在推车是这么搜索的,我搜搜4步范围内,似乎每步之间需要有一个100毫秒到200毫秒之间的缓冲,否则看见伙计出发看见伙计的动作和走下一步重叠就会出现一些意想不到的并行进程误差。只要看到伙计我就过去如果到那个地方伙计走了再搜索,直到找到伙计位置。
其实遍历步深5的房间数真的不少,我不是计算最优区域路径来搜搜,这样会有问题,因为有时候比如我到天桥,其实我只需要关系天桥附近最长距离为5的房间就可以了,不需要遍历整个北京城。意思就是这个意思,反正和胡一刀任务遍历要求不一样,所以我是从天桥开始每个方向按照迷宫走法遍历,一个方向遍历完接着遍历下个方向,直到所有方向都完成遍历。
实际上胡一刀任务你遍历比较高效,在30秒内完成区域遍历的话也有重复遍历问题,盗宝人走的太快了,而且走的距离常常跨度非常大,除非你找到盗宝人直接用kill叫杀,否则用hit盗宝人跑了就非常麻烦,每次不见盗宝人都来一次全区域遍历甚至跨区域遍历效率不会特别高,尤其如果在紫禁城这种变态地图,就是有长袖善舞,一次遍历超过50个以上房间耗时不会少于10秒钟。
还有一个办法就是计算预设命令,直接走一个命令串,比如10个行走命令,走完看看10个中有没有发现盗宝人发现回去缩小范围找,这个算法要求太高,不知道有没有这样做过。而且我感觉mush没有地图支持很多功能实现比较困难,需要自己开发大量基础函数,用zmud721汉字乱码问题躲避不了,用cmud你要挑战多线程之间竞争问题,有可能会由于线程竞争而出现定位出错。

oolong 发表于 2010-1-19 01:21:53

每一步0.1-0.2秒如果让你逛北京就郁闷了,后期没有pp的hyd拼的就是速度。
关于zmud721乱码的问题,解决办法我提过好多次。。。
页: 1 [2]
查看完整版本: 我的遍历办法[zmud 721]