--分析牌,單牌,對子,三張,炸彈分別放入不同的列表,方便提示出牌
--前提是首先按排值從小到大已經排好序
function GameLogic:AnalysesCards(tabCardData, cbCardCount)
local tagAnalysesResult = { -- tagAnalysesResult[1].cbTotalSameCnt 單牌數量,tagAnalysesResult[1].tabSameCards 存放的單牌
{ cbTotalSameCnt = 0, tabSameCards = { } },{ cbTotalSameCnt = 0, tabSameCards = { } },
{ cbTotalSameCnt = 0, tabSameCards = { } },{ cbTotalSameCnt = 0, tabSameCards = { } }
}
local cbCurCard = 0
local cbSameCount = 0
for i = 1, cbCardCount do
if cbCurCard == 0 then
cbCurCard = tabCardData[i]
cbSameCount = 1
else
tagAnalysesResult[cbSameCount].cbTotalSameCnt = tagAnalysesResult[cbSameCount].cbTotalSameCnt + 1
local cbTotalSameCnt = tagAnalysesResult[cbSameCount].cbTotalSameCnt
local tabCardList = { }
for j = i - cbSameCount, i - 1 do
table.insert(tabCardList, tabCardData[j])
end
tagAnalysesResult[cbSameCount].tabSameCards[cbTotalSameCnt] = tabCardList
if self:GetCardLogicValue(cbCurCard) ~= self:GetCardLogicValue(tabCardData[i]) then
cbCurCard = tabCardData[i]
cbSameCount = 1
else
cbSameCount = cbSameCount + 1
end
if i == cbCardCount then
tagAnalysesResult[cbSameCount].cbTotalSameCnt = tagAnalysesResult[cbSameCount].cbTotalSameCnt + 1
local cbTotalSameCnt = tagAnalysesResult[cbSameCount].cbTotalSameCnt
local tabCardList = { }
for j = i - cbSameCount + 1, i do
table.insert(tabCardList, tabCardData[j])
end
tagAnalysesResult[cbSameCount].tabSameCards[cbTotalSameCnt] = tabCardList
end
end
end
print("---------------------------------") --打印單牌(對子,三張,炸彈分別也拆一張放入該列表)
for i = 1, tagAnalysesResult[1].cbTotalSameCnt do
for j = 1, #tagAnalysesResult[1].tabSameCards[i] do
print(tagAnalysesResult[1].tabSameCards[i][j])
end
end
print("---------------------------------") --打印對牌(三張,炸彈分別也拆一對放入該列表)
for i = 1, tagAnalysesResult[2].cbTotalSameCnt do
print("#tagAnalysesResult[2].tabSameCards[i] = "..#tagAnalysesResult[2].tabSameCards[i])
for j = 1, #tagAnalysesResult[2].tabSameCards[i] do
print(tagAnalysesResult[2].tabSameCards[i][j])
end
end
print("---------------------------------") --打印三張(炸彈也拆三張放入該列表)
for i = 1, tagAnalysesResult[3].cbTotalSameCnt do
print("#tagAnalysesResult[3].tabSameCards[i] = "..#tagAnalysesResult[3].tabSameCards[i])
for j = 1, #tagAnalysesResult[3].tabSameCards[i] do
print(tagAnalysesResult[3].tabSameCards[i][j])
end
end
print("---------------------------------") -- 打印炸彈
for i = 1, tagAnalysesResult[4].cbTotalSameCnt do
print("#tagAnalysesResult[4].tabSameCards[i] = "..#tagAnalysesResult[4].tabSameCards[i])
for j = 1, #tagAnalysesResult[4].tabSameCards[i] do
print(tagAnalysesResult[4].tabSameCards[i][j])
end
end
return tagAnalysesResult
end