通配问题及小地图遍历问题。
请教,如上地图,空的表示道路通畅,关的表示道路关闭,五角星表示当前位置请问,如何在zmud或者cmud中,如何抓取道路信息,空格和|的匹配符一直没有搞定,
ps:有没有可能读完图后,自己遍历这个小地图?
谢谢!
北大侠客行MUD,中国最好的MUD 本帖最后由 alucar 于 2012-10-17 04:31 PM 编辑
一个思路:
用#trigger {^┌(*)┐$} {...}作为起始
以#trigger {^└(*)┘$} {...}作为结束
中间用#trigger {^|(*)|$} {...}抓取地图信息
用%copy函数逐个分析上述(*)中的内容
数据化后得到上述36个房间互相之间的连接信息
出口外可定义第37个房间,作为目标点
然后用最优路径算法可以计算离开迷宫的路径
在拥有地图连接信息的情况下,遍历也是可行的 前提这个地图是随即的,每个| |中间空两个格或者5个格,我是横行匹配,#trigger {^|(*)%s(*)%s(*)%s(*)%s(*)%s|$} {x1=%1;...x5=%5;say hi},能够say hi,但是x1-~x5无数值。不知道哪里出问题了。 本帖最后由 alucar 于 2012-10-17 04:27 PM 编辑
用这么多 * 通配符就分不清哪个是哪个了
如果只是要知道每一行相邻房间之间的连通关系
可以试试#trigger {^|??(?)??(?)??(?)??(?)??(?)??|$} {x1=%1;...;x5=%5} 本帖最后由 zder 于 2012-10-17 06:28 PM 编辑
谢谢楼上的解答。
我测试结果了下,
1、使用#trigger {^|??(?)??(?)??(?)??(?)??(?)??|$} {x1=%1;...;x5=%5},可以匹配,但不管是不是|,x(i)都是空;
2、 使用#trigger {^|??(%x)??(%x)??(%x)??(%x)??(%x)??|$} {x1=%1;...;x5=%5},必须与如果是:| || | || |匹配,如果有位置是空的,则不能匹配
3、如果有空格则,如:| | | || | 无法匹配,必须是 #trigger {^|??(?)??(%x)??(%x)??(%x)??(%x)??|$} {x1=%1;...;x5=%5},关键是我事前不知道那个位置是空的啊。
不知道是什么问题。求助, 你这个例子里的竖杠是全角字符还是半角?最好不要贴图,直接发字符版上来看看,发贴排版时记得用新宋体。 ┌—┬—┬—┬—┬—┬—┬—┬—┐
││ │ │ │
├┼┼—┼—┼—┼┼┼—┤
│││ │││ │
├┼┼—┼┼┼┼┼—┤
││ │ ││
├┼┼—┼┼┼—┼—┼┤
│ │ ★│
├┼—┼┼┼—┼┼┼┤
│ ││ ││││
├┼┼—┼—┼—┼—┼┼—┤
││ │││ │
├┼—┼—┼┼┼—┼┼—┤
│ ││ │
├┼—┼—┼┼┼—┼┼—┤
││ │ │
└—┴—┴—┴—┴—┴—┴—┴—┘
另一个图,其实就是nt4的森林。
类似,不过是个台湾的,跟这个是一个东西。 果然是全角的,那之前6*6的那个地图就要改成
#trigger {^│??(??)??(??)??(??)??(??)??(??)??│$} {x1=%1;...;x5=%5} 多谢,已经可以了,继续下一步。
页:
[1]
2