0

有没有办法在 Lua 中用另一个 2dArray 填充 2d 数组?我现在用的是这个

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 回答