如何使用索引从表中删除表格

我目前使用/学习 Corona SDK 并试图制作一款卡牌游戏。玩家有一套独特的卡,这些卡被从他们的手中抽出。这些抽出的卡应该从牌组中移除。我使用一个表格表格来实现这一点。我正在尝试以下代码:

local tbl = cardTable[math.random(#cardTable)]  --tbl = 随机卡牌
table.insert(handTable, tbl)  --将表格插入手牌表中
local indx = table.indexOf(cardTable, tbl) --获取已删除卡牌的索引
table.remove(cardTable,indx) --删除该索引

cardTable 类似于以下文件:

cardTable = { {a,b,c}, {d,e,f}, {g,h,i}, ...}

这是在循环中内部的一个手牌,循环5次以获取5张牌。

编辑

我意识到我在将卡片插入 cardTable 时犯了一个错误。我插入了多个卡片的副本,使其看起来像是未被删除。我应该原本检查这个问题。

点赞
用户3041972
用户3041972

我尝试了这个方法,并且没有任何问题,即使它与你的类似:

local t = { {"a","b","c"}, {d,e,f}, {g,h,i}}

local tbl = t[math.random(#t)]  --tbl = 随机抽牌
print(tbl)
local indx = table.indexOf(t, tbl) --获取被移除的索引
print(indx)
table.remove(t,indx) --移除该索引
print(t[indx])
2016-03-28 08:19:55
用户936986
用户936986

你的代码看起来很好,所以我认为可能是一些打字错误或设置错误。然而,你做了太多不必要的工作。你实际上不需要查找索引 - 你已经自己生成/获取了它。为什么要去寻找你已经知道的东西呢?你也不需要分别检索值,因为 table.remove 返回它移除的值。只需从 cardTable 中删除并立即插入到 handTable 中即可。

local indx = math.random(#cardTable) -- 以任何方式获取绘制和删除索引
table.insert(handTable, table.remove(cardTable, indx))
2016-03-28 10:48:06