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中都删除了返回前面房间的出口,就不会转圈
另外转圈也不会一直转下去,转到度数达到设定值就停止了,可行但是浪费时间,具体你试验下就知道,浪费的时间非常多