北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: zmeng

遍历,又见遍历!

[复制链接]
 楼主| 发表于 2009-8-24 12:03:20 | 显示全部楼层
这个方法不错,不过返回就成问题了。

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

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

XXXX死了{#exec @temp_path}

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

还得仔细考虑一下。

[ 本帖最后由 zmeng 于 2009-8-24 12:07 PM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-8-24 12:04:53 | 显示全部楼层
返回的确是问题,难做,画地图会好些,我喜欢这样做,等转721肯定画

守门有难度,kill,80skill没问题,但是机器人就会复杂很多
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-8-24 12:15:10 | 显示全部楼层
不知道是不是我没有看明白,好像你的框架有误哦

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

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

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

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

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

既然用到了逆向返回,迷宫就不好解决,迷宫只适用于走一圈顺向返回。可以在@exit中删除通往迷宫的方向,不过这样就不能杀迷宫里的叛徒了。这个方法还是用来小区域搜索伙计或者解决乱入比较好。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-8-24 12:16:31 | 显示全部楼层
另外深度20的话最好采用深度优先,否则遍历起来很浪费时间
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-8-24 12:22:39 | 显示全部楼层
zmud 555中%trim只能删除两边的空格,中间的空格删除不了
难道721中可以?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-8-24 12:23:27 | 显示全部楼层
你这么一说,发现还真有点问题。

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

我先去学下你的帖子

学习才是硬道理。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-8-24 12:24:52 | 显示全部楼层
这个我试验过,duno大神的方法是可以执行的。

我把“ ”换成 “|”以后就可以把方向存到exit里
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-8-24 12:26:37 | 显示全部楼层
另外我又想到一个问题,那就是环形房间。

会不会在转圈的问题。

这个还得继续考虑一下。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-8-24 12:28:21 | 显示全部楼层
哦,那还是721中的%trim好,555中要麻烦不少
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-8-24 12:30:38 | 显示全部楼层
所谓的环形房间转圈问题肯定是有的,不过如果你在每个@exit中都删除了返回前面房间的出口,就不会转圈

另外转圈也不会一直转下去,转到度数达到设定值就停止了,可行但是浪费时间,具体你试验下就知道,浪费的时间非常多
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-1 08:31 AM , Processed in 0.011527 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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