ltblue
发表于 2015-4-9 15:46:02
回复 20# silvent
我慢慢看哈,水平有限,看不太懂估计
我的菜地节点是这样的
= {
area = "华山村",
descriptions = {
= "这里是华山村民们赖以为生的菜地,空旷的一片,你一眼忘不到头,你走",
= "着走着,忽然忘记了来时的路了。",
},
exits = {
east = {
cmd = "e",
gto = 397,
},
north = {
cmd = "n",
gto = 397,
},
south = {
cmd = "s",
gto = 397,
},
west = {
cmd = "w",
gto = 397,
},
toout = {
cmd = "s",
trytimes = 100,
okmsg = "你乱走了一通,居然发现自己走回了原地。",
stop = 1,
gto = 386,
needtime = 150,
},
},
location = {
= "菜地",
= "|",
= "菜地-----菜地-----菜地",
= "|",
= "菜地",
},
maze = "华山村菜地",
name = "菜地",
},
ltblue
发表于 2015-4-9 15:49:07
self:caidi_cunzhongxin()
这句话是什么意思?
重新运行本函数?跟直接caidi_cunzhongxin()有啥区别?
self后面加冒号是哪部分的知识,请告诉我名字,我去查,多谢
ltblue
发表于 2015-4-9 16:00:25
本帖最后由 ltblue 于 2015-4-9 04:02 PM 编辑
看不懂,太高科技......
冒号这个不是很明白,感觉很多
我对这个的想法,就是
1.确保不忙
2.往南走
3.一直走到出”你乱走了一通,居然发现自己走回了原地。“为止
我觉得大部分迷宫都是这个路数
1.确保不忙
2.行走固定路径
3.发现走出来为止
4.如果一直没走出来,重新启动本路径
大体都应该是这类吧
littleknife
发表于 2015-4-9 20:08:21
self:的用法是面向对象的写法。你的东西的思路不错,不过个人认为相对数据结构复杂些。
self可以理解为对象本体的意思。由定义setmetable设定lua的元表,就是指定继承关系的意思。
一般冒号表示方法,点号用来表示属性。但有时Lua对这两种混用也可以。唯一的区别是冒号里面的函数可以继续引用self,而点号的函数无法再次引用self自身。
你自己的解决思路不错,就像你自己说的不一定一定采用面向对象的思维编程。good luck~~.
ltblue
发表于 2015-4-9 21:14:53
回复 24# littleknife
果然是这样啊......
我现在经常出现这样的情况
某个方向出口,比如是south,他里面有各种内容,比如去向,命令等
我用属性的方式传到函数里,我就不知道方向本身(就是south)是什么了
所以我得传两个参数,一个就是字符串south,一个是south的内容
这应该就是点号的作用吧?
继承?太面向对象了,老实说,java看得心潮澎湃,可是就是不会写代码,更别说用lua这种半对象的语言了......
ltblue
发表于 2015-4-9 21:16:08
回复 24# littleknife
我的table里,只有属性,没有方法,得靠“解码器”来,把属性+if,转换成方法才行......
这是典型的非面向对象啊......
看来活该找不到对象,呵呵
silvent
发表于 2015-4-10 11:42:02
面向对象比较好 看起来容易理解。。你的我自己看起来头大得很
silvent
发表于 2015-4-10 11:43:31
回复littleknife
果然是这样啊......
我现在经常出现这样的情况
某个方向出口,比如是south,他里 ...
ltblue 发表于 2015-4-9 09:14 PM http://pkuxkx.com/forum/images/common/back.gif
lua其实理解透有点难度,但是你模仿举一反三还是不难的。另外你在哪儿玩啊,有兴趣得话,可以来我这边得站点玩,一起研究mush一起优化 开发 哈哈
silvent
发表于 2015-4-10 11:47:13
看不懂,太高科技......
冒号这个不是很明白,感觉很多
我对这个的想法,就是
1.确保不忙
2.往南走
3. ...
ltblue 发表于 2015-4-9 04:00 PM http://pkuxkx.com/forum/images/common/back.gif
迷宫都是要看代码怎么写的。不是你说的这么简单得,说简单点其实就是若干个room.c ,然后代码一般都是几个方向随机到几比如east方向是room4.c...快速进出迷宫看源代码就不难写。但是迷宫遍历,就复杂多了。一般都是出口和入口两个固定,然后看walk多少步发现job npc,知道这个基本多遍历几次能找到npc..当然npc不断移动,就有偏差。
ltblue
发表于 2015-4-10 16:28:30
回复 29# silvent
的确,我设置了一个toout或者toin或者towest之类的虚拟方向,然后寻路的时候加上,行走的时候直接用路径即可
而在迷宫内找人,我设置了walk属性,里面是walk的路径,进到迷宫后按路径行走即可
当然,有些迷宫的随机性太强,就不好弄了,不过那个即使是人也够呛,机器就更够呛了,所以我也没奢望可以直接破解迷宫