北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
12
返回列表 发新帖
楼主: oolong

我的遍历办法[zmud 721]

[复制链接]
发表于 2010-1-5 16:09:49 | 显示全部楼层
请教一下,zmud有堆栈的概念没有?
如果没有堆栈,有数组的概念没有?

我是菜鸟新手。。。大家不要鄙视啊
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-1-5 16:55:37 | 显示全部楼层
关键是zmud没有结构类型概念,数组有,列表也有,缺少自定义结构,很多标准算法很难实现。否则简单的链表之类没有指针有结构也能实现,但是只有数组没有结构就没想法了。这个搜索算法有结构很简单,就是一个链表,你设定一个步深比如5,只要链表有5个元素就摘掉最后一个元素,倒数第二个元素取下一个方向继续找,就这样非常简单
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-1-18 10:29:34 | 显示全部楼层

回复 10# 的帖子

回答你几个问题:
1.每步看npc不需要消耗任何时间,快到你想不到
2.区域遍历是如果你画地图时按一定顺序画,你走起来就是最快路径,也可以预先设置好房间
3.跨区用%mapquery(Zoneid= 1 or Zoneid =2 or Zoneid=3)就可以得到所有房间再搜索,当然可以预先设置好房间
4.固定迷宫不需要任何处理,只有特殊随机迷宫需要
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-1-18 10:36:59 | 显示全部楼层
原帖由 seagate 于 2010-1-5 04:55 PM 发表
关键是zmud没有结构类型概念,数组有,列表也有,缺少自定义结构,很多标准算法很难实现。否则简单的链表之类没有指针有结构也能实现,但是只有数组没有结构就没想法了。这个搜索算法有结构很简单,就是一个链表,你 ...


个人看法要从远处深度遍历,理由有两点:
1.你考虑到这种情况没有,你刚搜完这个房间,npc就过来了,你算法再强还是徒劳。。。
2.本身只搜索范围5的房间就没几个房间,多走走任务成功率高
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-1-18 13:33:01 | 显示全部楼层
我现在推车是这么搜索的,我搜搜4步范围内,似乎每步之间需要有一个100毫秒到200毫秒之间的缓冲,否则看见伙计出发看见伙计的动作和走下一步重叠就会出现一些意想不到的并行进程误差。只要看到伙计我就过去如果到那个地方伙计走了再搜索,直到找到伙计位置。
其实遍历步深5的房间数真的不少,我不是计算最优区域路径来搜搜,这样会有问题,因为有时候比如我到天桥,其实我只需要关系天桥附近最长距离为5的房间就可以了,不需要遍历整个北京城。意思就是这个意思,反正和胡一刀任务遍历要求不一样,所以我是从天桥开始每个方向按照迷宫走法遍历,一个方向遍历完接着遍历下个方向,直到所有方向都完成遍历。
实际上胡一刀任务你遍历比较高效,在30秒内完成区域遍历的话也有重复遍历问题,盗宝人走的太快了,而且走的距离常常跨度非常大,除非你找到盗宝人直接用kill叫杀,否则用hit盗宝人跑了就非常麻烦,每次不见盗宝人都来一次全区域遍历甚至跨区域遍历效率不会特别高,尤其如果在紫禁城这种变态地图,就是有长袖善舞,一次遍历超过50个以上房间耗时不会少于10秒钟。
还有一个办法就是计算预设命令,直接走一个命令串,比如10个行走命令,走完看看10个中有没有发现盗宝人发现回去缩小范围找,这个算法要求太高,不知道有没有这样做过。而且我感觉mush没有地图支持很多功能实现比较困难,需要自己开发大量基础函数,用zmud721汉字乱码问题躲避不了,用cmud你要挑战多线程之间竞争问题,有可能会由于线程竞争而出现定位出错。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-1-19 01:21:53 | 显示全部楼层
每一步0.1-0.2秒如果让你逛北京就郁闷了,后期没有pp的hyd拼的就是速度。
关于zmud721乱码的问题,解决办法我提过好多次。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-29 01:33 AM , Processed in 0.012237 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表