dreamnb 发表于 2010-9-8 22:13:41

有没有自动遍历地图存入数据库的例子?

看到几篇关于如何自己定义数据库结构,然后将地图保存为数据库格式或者LUA的table格式。
然后通过房间名称、房间描述、出口等信息进行匹配,得到一个唯一的房间ID。
最后通过两个唯一的房间ID,确定路径。
基本都是采用广度优先遍历图的算法。

我想问的是,有没有在没有数据的情况下,自动将当前房间存入数据库,然后开始根据出口遍历,最后将能走的地方全部存入数据库的例子呢?

我的想法是当前房间为A,然后先判断数据库中是否有当前房间,如有没有,存入数据库,得到一个房间ID。
然后将每个出口存入一个队列。
从队列里去一个出口,然后look这个方向,判断look过去的地方是否在地图中存在,如果不存在,写入数据库,获得房间ID。
然后在房间A的信息里,加入这个出口连接到哪个房间ID。并把这个房间ID存入房间队列roomsqueue。
一次循环出口队列,直到出口全部look完毕。
然后从roomsqueue队列取出下一个roomID,走到这个房间,然后将这个房间设置为房间A,继续一次上面的过程。
以上只是我的一些想法,没有实现代码呢。

想问问是否各位前辈都是这样得到的xkx地图数据库呢?

lzkd 发表于 2010-9-8 22:34:22

maper有写一个教程721的.
而且好象是视频教程,怎么画地图,楼主可以搜索一下

killunix 发表于 2010-9-9 00:52:44

回复 1楼 的帖子

没有地图的话,根据房间的出口描述可以遍历,但是遇到环形路线就死定了

dreamnb 发表于 2010-9-9 09:30:45

环形路线应该没有问题。
因为如果look过去,发现数据库里已经有这个roomID了,就不会加入到roomsqueue队列,也就不会死循环了。
就是迷宫估计就死了

dreamnb 发表于 2010-9-9 09:33:04

原帖由 lzkd 于 2010-9-8 10:34 PM 发表 http://pkuxkx.com/forum/images/common/back.gif
maper有写一个教程721的.
而且好象是视频教程,怎么画地图,楼主可以搜索一下

这个是用的zmud的map吧,这个map不能导入到access或者sqlite吧?
只能通过zmud的 map提供的函数使用。和我需要的不一样,不过还是感谢。
zmud的database和mud我一直没有搞明白怎么用呢。呵呵

感觉还是自己写程序控制来的直接,而且我用过zmud 5.55 map+DB的rbt,感觉只能挂一个号,再开其他的,就非常卡。。。不知道什么原因

killunix 发表于 2010-9-9 09:56:51

原帖由 dreamnb 于 2010-9-9 09:30 AM 发表 http://www.pkuxkx.com/forum/images/common/back.gif
环形路线应该没有问题。
因为如果look过去,发现数据库里已经有这个roomID了,就不会加入到roomsqueue队列,也就不会死循环了。
就是迷宫估计就死了
房间名是同名的,描述也是一样的,出口也是一样的,怎么区分?

dreamnb 发表于 2010-9-9 13:34:44

这个就是所谓的迷宫了。
房间名、描述、出口都一样。。。确实不能区分。我人也不能区分呀。
这个我也一直没有办法

maper 发表于 2010-9-9 14:20:26

原帖由 dreamnb 于 2010-9-9 09:33 AM 发表 http://www.pkuxkx.com/forum/images/common/back.gif


这个是用的zmud的map吧,这个map不能导入到access或者sqlite吧?
只能通过zmud的 map提供的函数使用。和我需要的不一样,不过还是感谢。
zmud的database和mud我一直没有搞明白怎么用呢。呵呵

感觉还是自己写 ...
zmud7.21画的地图是access格式的。

seagate 发表于 2010-9-9 15:29:54

自己写可以看我的例子,我就是用自己写的access数据库来遍历的。没用任何现成的地图功能。
zmud721有点麻烦,cmud237肯定没问题。主要问题就是中文识别上。

dreamnb 发表于 2010-9-9 16:11:51

原帖由 seagate 于 2010-9-9 03:29 PM 发表 http://www.pkuxkx.com/forum/images/common/back.gif
自己写可以看我的例子,我就是用自己写的access数据库来遍历的。没用任何现成的地图功能。
zmud721有点麻烦,cmud237肯定没问题。主要问题就是中文识别上。
老大说的是“复杂Mud机器人编写指引”这篇文章吗?
我看到了里面关于数据库的设计和遍历的文章
但是设计好数据库后,里面的房间数据是怎么获得的?总不能自己手动添加rooms的记录到数据库,然后再利用这些数据计算路径吧?

我现在利用数据可以计算出两点间路径了,但是苦于没有完整的房间数据库呀。所以问问有没有简便的方法可以让程序自动抓取出xkx房间的数据库出来?
页: [1] 2
查看完整版本: 有没有自动遍历地图存入数据库的例子?