2012-05-03 8 views
0

2次元配列を別の2dArrayにLuaで塗りつぶす方法はありますか?今使って何イムこの2dArraysをLuaの別の2DArrayで塗りつぶし

local T4 = { 
    {0, 0, 0, 0, 0}, 
    {0, 0, 1, 0, 0}, 
    {0, 1, 1, 1, 0}, 
    {0, 0, 0, 0, 0}, 
    {0, 0, 0, 0, 0} 
}; 

function myFunc() 
local Pieces = {} 

     for x = 1, 5 do 
     Pieces[x]={} 
      for y = 1, 5 do 
      Pieces[y][x] = T4[y][x]--the error is probably here 
      end 
     end 
end 

であるが、これは動作していない、IVEはこれを行うには十分な理由を持って、その、このプロセスは、T4はオプション

ではありません使用してそう多くの時間を繰り返しますので、また、私はエラーを取得していない、プログラムはちょうどそこで停止するので、どのようにこれを行うにはどのようなアイデア?

答えて

4

あなたが持っているあなたのインデックスがめちゃめちゃ:

function myFunc() 
    local Pieces = {} 
    for y = 1, 5 do 
     Pieces[y]={} 
     for x = 1, 5 do 
      Pieces[y][x] = T4[y][x] 
     end 
    end 
    return Pieces 
end 

あなたはこのようなものを使用して任意のテーブルをコピーすることができます:

function copytable(t) 
    local copy = {} 
    for key,val in pairs(t) do 
     if type(val) == 'table' then 
      copy[key] = copytable(val) 
     else 
      copy[key] = val 
     end 
    end 
    return copy 
end 

これはとてもカチオンと使用私の頭の上からです。間違いなく循環参照(同じテーブルへの参照を含むテーブル)を扱うことはありません。

+0

どうもありがとうございました。何とかコピータブルがいいようです – Makenshi