请教个LUA房间遍历问题
刚接触LUA时间不长,请教下怎么用LUA写一个房间遍历脚本。谢谢或者谁有现成的,让我学习学习。
北大侠客行MUD,中国最好的MUD 如果你这都不知道,建议不要搞mc了。浪费时间啊。 我会用LUA写一些函数,实现一些功能,但是遍历这个 没做过,不会。其他一些都行。一般的随机走路呀什么都行。 不知道这个遍历的一个实际设计 他是一个随机的大房间,不是一个固定的,如果是固定的 我也会。 每次进入 房间的链接都不是一样的。而且房间数量和位置都不一样 一堆节点
每个节点都有几个出口
出口设置到其他节点的编号
就是“图”吧 回复 6# ltblue
这个要具体怎么弄? 你做过相关的遍历吗?让我参考参考 我只做了地图的遍历,不过不是随机的
但我做遍历的时候也不知道地图,换句话说,地图是自动“画”出来的,所以不管是不是随机也都能画吧
大体就是这么做吧
1.设定一个table(我只会table,他们会数据库,我比较笨),可以取名叫map,然后里面是各个节点
比如这就是我的一个节点信息。你看看格式就行
= {
area = "襄阳城",
descriptions = {
= "这是一家素以买卖公平著称的老字号当铺,一个四尺高的柜台摆在你的面",
= "前,柜台上摆着一个牌子(paizi), 柜台后坐着当铺的老板,一双鬼溜溜的眼",
= "睛上上下下打量着你。",
},
exits = {
south = {
cmd = "s",
gto = 2,
},
},
location = {
= "",
= "",
= "当铺",
= "|",
= "东街",
},
name = "当铺",
},
2.设计一个看房间的函数,可以把当前房间的所有信息记录到上面的table中去
3.抓到该房间的所有方向,然后逐个方向找,任何一个方向的目的地未知,都可以去一下
4.从起始房间向任意方向行走,来到新房间,然后让原有房间的这个方向的目的地记录为房间2,把房间2的反相目的地记录为房间1(但是,如果有时候不反相的,就不好处理了,如果你的迷宫经常出现房间1的n是2,而房间2的s不是1,那就不能这么做了)
5.每到一个新房间,都判断是否为已知房间,如果是已知房间,说明绕回来了,那么回退到上一个房间,并记录。如果不是已知房间,那么记录新房间信息,并对新房间信息逐个尝试。
6.当一个房间的所有方向都记录过目的地后,就可以回退回之前的房间,然后继续。
7.当所有房间的所有方向都记录过,人也自然回到最初的位置,这时候就可以保存地图了。
8.如果出现所有房间的描述都一样的情况,请手动处理。
当然,如果你的目的,就是画迷宫,而且迷宫里的房间描述都相同,又不想手动处理,那就得理解迷宫的本质,然后另行想办法。 他是一个随机的大房间,不是一个固定的,如果是固定的 我也会。 每次进入 房间的链接都不是一样的。而且房间 ...
dandelion 发表于 2015-4-27 04:43 PM http://pkuxkx.com/forum/images/common/back.gif
随机的大房间,每次进入的链接还都不同?
是进入大房间的时候进行随机,还是每进入一个小房间都随机一次?
如果是进入大房间的时候随机,你的目的又是能走通,那就看描述是不是一样了。
如果描述一样,而且没有绝对的位置可说,完全是随机的,那就只好扔铜板了......这样最难
如果描述一样,但有绝对的位置,也就是理论上可以画一张2维地图,没有超时空移动的话,设定x、y坐标轴走格子就行
如果是每进入一个小房间都随机一下,那完全没必要画什么地图,乱走即可
如果描述都不同,位置也不是每进一个小房间一随机,那就按正常的遍历地图的方式即可
页:
[1]