zder 发表于 2012-10-17 13:53:01

通配问题及小地图遍历问题。


请教,如上地图,空的表示道路通畅,关的表示道路关闭,五角星表示当前位置请问,如何在zmud或者cmud中,如何抓取道路信息,空格和|的匹配符一直没有搞定,
ps:有没有可能读完图后,自己遍历这个小地图?
谢谢!

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

alucar 发表于 2012-10-17 15:58:14

本帖最后由 alucar 于 2012-10-17 04:31 PM 编辑

一个思路:
用#trigger {^┌(*)┐$} {...}作为起始
以#trigger {^└(*)┘$} {...}作为结束
中间用#trigger {^|(*)|$} {...}抓取地图信息
用%copy函数逐个分析上述(*)中的内容
数据化后得到上述36个房间互相之间的连接信息
出口外可定义第37个房间,作为目标点
然后用最优路径算法可以计算离开迷宫的路径
在拥有地图连接信息的情况下,遍历也是可行的

zder 发表于 2012-10-17 16:18:56

前提这个地图是随即的,每个|   |中间空两个格或者5个格,我是横行匹配,#trigger {^|(*)%s(*)%s(*)%s(*)%s(*)%s|$} {x1=%1;...x5=%5;say hi},能够say hi,但是x1-~x5无数值。不知道哪里出问题了。

alucar 发表于 2012-10-17 16:25:51

本帖最后由 alucar 于 2012-10-17 04:27 PM 编辑

用这么多 * 通配符就分不清哪个是哪个了
如果只是要知道每一行相邻房间之间的连通关系
可以试试#trigger {^|??(?)??(?)??(?)??(?)??(?)??|$} {x1=%1;...;x5=%5}

zder 发表于 2012-10-17 18:26:22

本帖最后由 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},关键是我事前不知道那个位置是空的啊。
   不知道是什么问题。求助,

alucar 发表于 2012-10-17 18:42:01

你这个例子里的竖杠是全角字符还是半角?最好不要贴图,直接发字符版上来看看,发贴排版时记得用新宋体。

zder 发表于 2012-10-17 19:02:52

┌—┬—┬—┬—┬—┬—┬—┬—┐
││          │      │      │
├┼┼—┼—┼—┼┼┼—┤
│││      │││      │
├┼┼—┼┼┼┼┼—┤
││      │            ││
├┼┼—┼┼┼—┼—┼┤
│            │            ★│
├┼—┼┼┼—┼┼┼┤
│      ││      ││││
├┼┼—┼—┼—┼—┼┼—┤
││      │││          │
├┼—┼—┼┼┼—┼┼—┤
│            ││          │
├┼—┼—┼┼┼—┼┼—┤
││          │            │
└—┴—┴—┴—┴—┴—┴—┴—┘
另一个图,其实就是nt4的森林。

zder 发表于 2012-10-17 19:18:32

类似,不过是个台湾的,跟这个是一个东西。

alucar 发表于 2012-10-17 20:06:41

果然是全角的,那之前6*6的那个地图就要改成
#trigger {^│??(??)??(??)??(??)??(??)??(??)??│$} {x1=%1;...;x5=%5}

zder 发表于 2012-10-17 21:21:14

多谢,已经可以了,继续下一步。
页: [1] 2
查看完整版本: 通配问题及小地图遍历问题。