dandelion 发表于 2015-4-24 15:04:53

请教个LUA房间遍历问题

刚接触LUA时间不长,请教下怎么用LUA写一个房间遍历脚本。谢谢
或者谁有现成的,让我学习学习。

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

oolong 发表于 2015-4-25 12:10:25

如果你这都不知道,建议不要搞mc了。浪费时间啊。

dandelion 发表于 2015-4-27 16:40:52

我会用LUA写一些函数,实现一些功能,但是遍历这个 没做过,不会。其他一些都行。一般的随机走路呀什么都行。

dandelion 发表于 2015-4-27 16:41:41

不知道这个遍历的一个实际设计

dandelion 发表于 2015-4-27 16:43:01

他是一个随机的大房间,不是一个固定的,如果是固定的 我也会。 每次进入 房间的链接都不是一样的。而且房间数量和位置都不一样

ltblue 发表于 2015-4-27 19:14:14

一堆节点
每个节点都有几个出口
出口设置到其他节点的编号
就是“图”吧

dandelion 发表于 2015-5-6 09:08:21

回复 6# ltblue


    这个要具体怎么弄? 你做过相关的遍历吗?让我参考参考

ltblue 发表于 2015-5-6 22:39:46

我只做了地图的遍历,不过不是随机的
但我做遍历的时候也不知道地图,换句话说,地图是自动“画”出来的,所以不管是不是随机也都能画吧
大体就是这么做吧

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.如果出现所有房间的描述都一样的情况,请手动处理。


当然,如果你的目的,就是画迷宫,而且迷宫里的房间描述都相同,又不想手动处理,那就得理解迷宫的本质,然后另行想办法。

ltblue 发表于 2015-5-6 22:45:37

他是一个随机的大房间,不是一个固定的,如果是固定的 我也会。 每次进入 房间的链接都不是一样的。而且房间 ...
dandelion 发表于 2015-4-27 04:43 PM http://pkuxkx.com/forum/images/common/back.gif


随机的大房间,每次进入的链接还都不同?
是进入大房间的时候进行随机,还是每进入一个小房间都随机一次?
如果是进入大房间的时候随机,你的目的又是能走通,那就看描述是不是一样了。
如果描述一样,而且没有绝对的位置可说,完全是随机的,那就只好扔铜板了......这样最难
如果描述一样,但有绝对的位置,也就是理论上可以画一张2维地图,没有超时空移动的话,设定x、y坐标轴走格子就行
如果是每进入一个小房间都随机一下,那完全没必要画什么地图,乱走即可
如果描述都不同,位置也不是每进一个小房间一随机,那就按正常的遍历地图的方式即可
页: [1]
查看完整版本: 请教个LUA房间遍历问题