0

Lua で 2d Array を別の 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

しかし、これは機能していません。これを行う正当な理由があり、このプロセスが何度も繰り返されるため、T4 を使用することはできません。

また、エラーが発生せず、プログラムがそこで停止するだけなので、これを行う方法はありますか?

4

1 に答える 1

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

これは私の頭の上から外れているので、陽イオンで使用してください。循環参照 (同じテーブルへの参照を含むテーブル) は絶対に扱いません。

于 2012-05-03T20:02:38.747 に答える