|
发表于 2015-5-6 22:39:46
|
显示全部楼层
我只做了地图的遍历,不过不是随机的
但我做遍历的时候也不知道地图,换句话说,地图是自动“画”出来的,所以不管是不是随机也都能画吧
大体就是这么做吧
1.设定一个table(我只会table,他们会数据库,我比较笨),可以取名叫map,然后里面是各个节点
比如这就是我的一个节点信息。你看看格式就行
[1] = {
area = "襄阳城",
descriptions = {
[1] = "这是一家素以买卖公平著称的老字号当铺,一个四尺高的柜台摆在你的面",
[2] = "前,柜台上摆着一个牌子(paizi), 柜台后坐着当铺的老板,一双鬼溜溜的眼",
[3] = "睛上上下下打量着你。",
},
exits = {
south = {
cmd = "s",
gto = 2,
},
},
location = {
[1] = "",
[2] = "",
[3] = "当铺",
[4] = "|",
[5] = "东街",
},
name = "当铺",
},
2.设计一个看房间的函数,可以把当前房间的所有信息记录到上面的table中去
3.抓到该房间的所有方向,然后逐个方向找,任何一个方向的目的地未知,都可以去一下
4.从起始房间向任意方向行走,来到新房间,然后让原有房间的这个方向的目的地记录为房间2,把房间2的反相目的地记录为房间1(但是,如果有时候不反相的,就不好处理了,如果你的迷宫经常出现房间1的n是2,而房间2的s不是1,那就不能这么做了)
5.每到一个新房间,都判断是否为已知房间,如果是已知房间,说明绕回来了,那么回退到上一个房间,并记录。如果不是已知房间,那么记录新房间信息,并对新房间信息逐个尝试。
6.当一个房间的所有方向都记录过目的地后,就可以回退回之前的房间,然后继续。
7.当所有房间的所有方向都记录过,人也自然回到最初的位置,这时候就可以保存地图了。
8.如果出现所有房间的描述都一样的情况,请手动处理。
当然,如果你的目的,就是画迷宫,而且迷宫里的房间描述都相同,又不想手动处理,那就得理解迷宫的本质,然后另行想办法。 |
|