北大侠客行MUD论坛's Archiver

mecca 发表于 2010-7-28 12:03 AM

[请教]zmud机器怎么实现二维数组?

如题,本人只知道#array能定义一维数组,不知道二维怎么用
听说这里高手多,特来请教

bluse 发表于 2010-7-28 06:19 AM

[font=宋体][size=5][color=blue]假设有一个二维数组A[4][4]:

#va A "00|11|22|33|44|55|66|77|88|99|aa|bb|cc|dd|ee|ff"
#va B %word(@A,%eval(4*%1+%2+1),|)

那么 @B(m,n) 就是符合一般概念的二维数组访问符。
@B(3,3) 返回了第 16 个元素:ff
@B(1,2) 返回了第 7 个元素:66[/color][/size][/font]

seagate 发表于 2010-7-28 11:01 AM

list 对象支持多维数据,list里面的元素可以是字符或者数字,也可以是一个复杂结构,比如list、record等等。

mecca 发表于 2010-7-28 11:38 AM

1楼的办法真巧妙哈,拜谢了
2楼说的list里套list好像随机取值有点问题,回去再试试看
ttk_04 ttk_04

bluse 发表于 2010-7-28 11:57 AM

[font=宋体][size=5][color=blue]要对元素进行赋值,这样:[/color][/size][/font]
[font=宋体][size=5][color=blue]%len(@B) 得到原 LIST 长度,[/color][/size][/font]
[font=宋体][size=5][color=#0000ff]%len(@B(m,n)) 得到需替换的元素的长度;[/color][/size][/font]
[font=宋体][size=5][color=#0000ff]由此通过 %right,%left 函数,进行替换,[/color][/size][/font]
[font=宋体][size=5][color=#0000ff]得到结果。[/color][/size][/font]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.