我在lua中设置了2个不同的2d阵列。第一个循环
bubbleMat = {} --Set Up Table called bubbleMat
for i = 1, 10 do
bubbleMat[i] = {} --1D table with 10 components
for j = 1, 13 do
bubbleMat[i][j] = bubbleClass.new( (i*62) - 62, (j*62) - 62 ) --2D Table with 10x13 Matrix each cell given a coordinate as it is iterated through the loop
end
end
使用此数组,我可以使用
将数组中任何位置的值打印到控制台print(bubbleMat[x][y])
对于任何数量的x和y
由于某种原因,第二个数组不起作用。第二个数组如下
bubbleMat = {} --Set Up Table called bubbleMat
for j = 1, 13 do
for i = 1, 10 do
bubbleMat[i] = {}
--bubbleMat[i][j] = {}
if j%2 == 0 then
bubbleMat[i][j] = bubbleClass.new( (i*62) - 31, (j*62) - 62 )
else
bubbleMat[i][j] = bubbleClass.new( (i*62) - 62, (j*62) - 62 )
end
end
end
print(bubbleMat)
我不确定为什么我无法索引第二个数组
这是我在控制台中遇到的以下错误
attempt to index field '?' (a nil value)
提前感谢您的帮助。
基本上我想以下列模式显示存储在二维数组中的气泡网格
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
而不是将下一行中的气泡直接放在
下面答案 0 :(得分:0)
循环for j
在外面,循环for i
在里面。这不一定是假的,但不寻常。
但是,bubbleMat[i]
在最里面的循环中被初始化为{}
,这显然是错误的。
将初始化移动到最外层循环中,或使用以下语法:
bubbleMat[i] = bubbleMat[i] or {}