我正在尝试在 lua 中为我的地牢生成器使用一些矩阵。基本上我会有矩阵 [x][y] 和里面的结构将存储每个“房间”的信息。但既然是发电机,我不知道我会有多少房间,我知道的唯一方法就是做这样的事情:
mat = {}
for i = 0, 10 do
mat[i] = {}
for j = 0, 10 do
mat[i][j] = 1
end
end
所以问题是,有没有办法创建一个矩阵,当我向其中添加数据时动态增加大小?因为地下城会像树枝一样,所以会有空白。
从 Lua 编程:
此外,表格没有固定大小;您可以动态地向表格中添加任意数量的元素。
要处理对不存在的表成员的访问,从而避免索引 nil 值时出现错误消息,您可以使用实现 __index 元方法的元表。
在下面的例子中,Lua 会在你的表中插入一个空表,只要它还不存在。
请参考https://www.lua.org/manual/5.3/manual.html#2.4详细内容
local mt_2D = {
__index =
function(t, k)
local inner = {}
rawset(t, k, inner)
return inner
end
}
local array2D = setmetatable({}, mt_2D)
array2D[2][5] = 'it works'
print(array2D[2][5]) --> it works
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句