2016-03-28 10 views
2

現在、コロナSDKを使用しています。私はカードゲームを作ろうとしています。プレイヤーは手札から引き出されたユニークなカードを持っています。これらのカードはデッキから取り除かなければなりません。私はこれのためのテーブルのテーブルを使用しています。描かれたカードを取り除くことができません。私は以下しようとしている:インデックスを使用してテーブルからテーブルを削除する方法

local tbl = cardTable[math.random(#cardTable)] --tbl = random card drawn 
table.insert(handTable, tbl) --insert the table into a hand table 
local indx = table.indexOf(cardTable, tbl) --get the index of the removed 
table.remove(cardTable,indx) --remove that index 

をcardTableは以下のようになります。

cardTable = {{A、B、C}、{D、E、F}、{G、H、Iは}、...}

これは5枚のカードの手に5回反復するforループの内部です。

編集

私はcardTableにカードを挿入しながら、私はミスを犯したことに気づきました。私はそれが削除されていないように見えるように、各カードの複数のコピーを挿入しました。私はこれをもともとチェックしていたはずです。

+0

'handTable'要素をインデックスで削除しますか? – Albert

+1

合理的に見えます。あなたのトラブルは何ですか? – siffiejoe

答えて

0

私はこれを試してみましたが、私はそれはあなたに似ているにもかかわらず、すべての問題を持っていけない:

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

local tbl = t[math.random(#t)] --tbl = random card drawn 
print(tbl) 
local indx = table.indexOf(t, tbl) --get the index of the removed 
print(indx) 
table.remove(t,indx) --remove that index 
print(t[indx]) 
1

あなたのコードがよさそうだ、私はそれはいくつかのタイプミスや設定エラーであると仮定します。しかし、あなたはあまりにも多くの不必要な作業をしています。あなたは本当にインデックスを見つける必要はありません - あなたは自分で作成/取得しました。なぜあなたはすでに知っているものを探しに行くのですか? table.removeが削除した値を返すので、別途値を取得する必要もありません。 cardTableから削除して、削除したものをすぐにhandTableに挿入してください。

local indx = math.random(#cardTable) -- obtain draw and remove index in any way 
table.insert(handTable, table.remove(cardTable, indx)) 
+0

私はタイプミスがあります、それは私のテーブルに要素を追加することでした。私は最初に同じカードの複数のコピーを挿入しています。 –

関連する問題