2017-10-31 26 views
1

ネストしたテーブルで作られたグリッド上の特定の変数をテストしようとしています。しかし、私は文句を言わない、それを試してみてください何に関係なくは、私がLuaネストしたテーブル内のテーブルの値を処理中

print(t[1][3]) 

を使用して値しかし、これだけのプリントにアクセスしようとした変数内に格納された値のみのデータ型はnil値

y = {} 
for _y = 0,16 do 
    for _x = 0,16 do 
     x = {} 
     x.x = _x 
     x.y = _y 
     x.v = flr(rnd(2)) 

     if x.x < 1 or x.x > 14 then 
      x.v = 3 
     end 


     if x.v == 0 then 
      x.v = "." 
     elseif x.v ==1 then 
      x.v = "," 
     else 
      x.v = "0" 
     end 
     add(y,x) 
    end 
end 

を与えますどのようにこれらの2つのテーブル内の値内に格納されているかを示すためにコード化するでしょうか? x_iのそれぞれの形式は、

y = {x_1, x_2, x_3, ...} 

+0

のように見えるようにコードを修正しますか? – hjpotter92

+0

はい、間違って[3]を使用して.vにアクセスしていますか? –

答えて

2

は、次のようにネストを持っているので、

x = { 
    x = p, 
    y = q, 
    v = r 
} 

は、あなたがy[i]として各x要素のインデックスを持つことになりますし、各y[i]には3つの属性が含まれています。

print(y[1].x) 

はあなたに与えますx_1.x

0

2次元の表を作成したいが、1次元の表を作成したい。それは `プリント(Y [1] .X)`すべきではない

は多少この

y = {} 
for _y=1,16 do 
    y[_y] = {} 
    for _x=1,16 do 
     y[_y][_x]= "your data" 
    end 
end 
関連する問題