For loop 在Lua中用另一个2DArray填充2DArray

For loop 在Lua中用另一个2DArray填充2DArray,for-loop,lua,multidimensional-array,For Loop,Lua,Multidimensional Array,有没有一种方法可以在Lua中用另一个二维数组填充二维数组?我现在用的是这个 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]={}

有没有一种方法可以在Lua中用另一个二维数组填充二维数组?我现在用的是这个

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不是一个选项


另外,我没有收到错误,程序就停在那里,你知道怎么做吗?

你的索引搞砸了:

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

这是我的头顶,所以使用阳离子。它肯定不处理循环引用(一个包含对同一个表的引用的表)。

您的索引被弄乱了:

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

这是我的头顶,所以使用阳离子。它肯定不处理循环引用(一个包含对同一个表的引用的表)。

非常感谢我没有注意到copytable看起来不错我可能会再试试谢谢谢谢谢谢你非常感谢我没有注意到copytable看起来不错我可能会再试试谢谢你