heartyi 发表于 2012-4-24 17:36:33

一种从当前房间指定范围内的深度遍历思路

提供一个方法: 利用路径堆栈可以遍历当前房间开始的指定深度范围的所有房间.

forward_list:保存前进的方向堆栈
backward_list:保存返回的方向堆栈

过程:

从某个房间开始,push这个房间的所有出口到forward_list, 每次从forward_list里pop一个方向前进,同时,把返回的路径保存在backward_list里. 如此反复, 并判断深度n是否大于限定的最大深度.

另外, 在把一个房间所有出口push到forward_list前,先push一个room_search_ok的标志,用于在返回/单前进出口等情况时使用. 在从forward_list里pop出room_search_ok标志时, 从backward_list里pop出一个路径.

在达到遍历深度时, 需要从forward_list里pop出所有在第一个room_search_list前的路径.

大体思路就是这样了. 已经自行测试过了, 没问题. script就不放出来了. hehe

北大侠客行MUD,中国最好的MUD

heartyi 发表于 2012-4-24 17:41:32

回复 2# yhzzyahoo


    我已经自己搞定了, 现在只是post出来. 原来早就有教程了啊. 呵呵

dandelion 发表于 2012-9-3 17:57:40

这个有教程。具体程序直接找huacuoh交流
yhzzyahoo 发表于 2012-4-24 05:39 PM http://pkuxkx.com/forum/images/common/back.gif


    想问下,这个教程的链接是多少,我最近在学习遍历一个房间,谢谢了。

labaz 发表于 2012-9-3 18:01:47

坚定不移的反对全自动机器人

flauto 发表于 2012-9-3 18:15:56

回复 5# dandelion


    mush的可能是这个http://pkuxkx.com/forum/thread-19517-1-1.html 强大的GPS,代码看不太明白,从函数名里猜可能有遍历的内容;错错也有个推车机器人的精华贴讲到了遍历,不过是固定路径的,你得提前录制好路径。
    zmud讲遍历的是http://pkuxkx.com/forum/thread-7512-1-1.html,不涉及地图/数据库,但值得好好研究。
    其他的不是很清楚,不知道2楼指的是哪个。。。你可以搜索下“遍历”,有很多帖子。。。

dandelion 发表于 2012-9-4 09:08:26

你搜他的帖子,有一个帖子直接讲到了这个内容
yhzzyahoo 发表于 2012-9-4 08:54 AM http://pkuxkx.com/forum/images/common/back.gif


    你好,我在搜索里搜索了,没找到。。。。。
能帮我看看嘛?谢谢了。

labaz 发表于 2012-9-4 09:14:48

看来要把中途乱入改成中途调整目的地了,前方匪患严重,冲不过去只能绕道去邻近镖局了。去遍历吧,嘿嘿
页: [1]
查看完整版本: 一种从当前房间指定范围内的深度遍历思路