zmeng 发表于 2009-8-24 12:03:20

这个方法不错,不过返回就成问题了。

这个遍历的路径我都记录在path里,如果找到pantu的话杀死可以自动回到山门,然后自己回到广场。嘿嘿。

这个还没设置遇到拦路的怎么办,
如果有拦路的,是不是考虑kill(新人能不能杀死?)

XXXX死了{#exec @temp_path}

万一路上有蛇自动攻击人,蛇死了,会不会打乱程序。

还得仔细考虑一下。

[ 本帖最后由 zmeng 于 2009-8-24 12:07 PM 编辑 ]

zgbl 发表于 2009-8-24 12:04:53

返回的确是问题,难做,画地图会好些,我喜欢这样做,等转721肯定画

守门有难度,kill,80skill没问题,但是机器人就会复杂很多

sghjjj 发表于 2009-8-24 12:15:10

不知道是不是我没有看明白,好像你的框架有误哦

你的遍历结束的条件是:是出发点,不是刚开始,没有没走过的出口

这3个条件加在一起深度只有2吧?

在我早上刚贴出来的第14章第2部分方法跟这类似,也是选择房间出口来遍历,你可以把那些代码复制到mud中试试,也许会对你有帮助

房间出口信息中包含有返回前面房间的方向,选择方向进入后面房间的时候,可以将这个方向删除再选择,否则有可能你选择第一个方向的时候就回去了,删除方法我在第14章第2部分中给出了。记录好来的路径,路径中最后一个方向是来的方向,因此逆方向就是需要删除的方向。

对于陷阱或者不想去的地方或者挡住你的地方,你可以通过地名在@exit中删除该方向

既然用到了逆向返回,迷宫就不好解决,迷宫只适用于走一圈顺向返回。可以在@exit中删除通往迷宫的方向,不过这样就不能杀迷宫里的叛徒了。这个方法还是用来小区域搜索伙计或者解决乱入比较好。

sghjjj 发表于 2009-8-24 12:16:31

另外深度20的话最好采用深度优先,否则遍历起来很浪费时间

sghjjj 发表于 2009-8-24 12:22:39

zmud 555中%trim只能删除两边的空格,中间的空格删除不了
难道721中可以?

zmeng 发表于 2009-8-24 12:23:27

你这么一说,发现还真有点问题。

我再考虑一下,看看怎么修复比较合适。

我先去学下你的帖子

学习才是硬道理。

zmeng 发表于 2009-8-24 12:24:52

这个我试验过,duno大神的方法是可以执行的。

我把“ ”换成 “|”以后就可以把方向存到exit里

zmeng 发表于 2009-8-24 12:26:37

另外我又想到一个问题,那就是环形房间。

会不会在转圈的问题。

这个还得继续考虑一下。

sghjjj 发表于 2009-8-24 12:28:21

哦,那还是721中的%trim好,555中要麻烦不少

sghjjj 发表于 2009-8-24 12:30:38

所谓的环形房间转圈问题肯定是有的,不过如果你在每个@exit中都删除了返回前面房间的出口,就不会转圈

另外转圈也不会一直转下去,转到度数达到设定值就停止了,可行但是浪费时间,具体你试验下就知道,浪费的时间非常多
页: 1 [2] 3 4 5
查看完整版本: 遍历,又见遍历!