对lua表中数据按一定格式处理,循环
function putStartCard(handCard) function dataDeal(array,a,b,c) cclog("进入datadeal====================================") for i=1,#array do cclog("array[%d]======%d",i,array[i]) end local result = {} if #array >= 3 then for i=1,#array do if a == array[i] then for j=i+1, #array do if b == array[j] then for k=j+1,#array do if c == array[k] then table.insert(result,array[i]) table.insert(result,array[j]) table.insert(result,array[k]) cclog("%d,%d,%d",array[i],array[j],array[k]) table.remove(array,k) table.remove(array,j) table.remove(array,i) cclog("找到2,7,10===============") cclog("result===%d%d%d",result[1],result[2],result[3]) for ii=1,#array do cclog("array[%d]=======%d",ii,array[ii]) end return result end end end end end end end cclog("没找到2,7==============") return result end local unUseless = 42 local i = nil local data = {} for j=1, 4 do data[j] = {} end for i=1, 19 do for j=1, 20-i do if handCard[j] > handCard[j+1] then handCard[j],handCard[j+1] = handCard[j+1],handCard[j] end end end cclog("排序后的数据") for i=1, 20 do cclog("handCard[%d]===============%d",i,handCard[i]) end i = 1 repeat if handCard[i] == handCard[i+1] and handCard[i] == handCard[i+2] and handCard[i] == handCard[i+3] then cclog("进入data1") for j=1, 4 do table.insert(data[1],handCard[i]) end cclog("data[i]====%d,%d,%d,%d",data[1][1],data[1][2],data[1][3],data[1][4]) i = i+4 elseif handCard[i] == handCard[i+1] and handCard[i] == handCard[i+2] then cclog("进入data2") for j=1, 3 do table.insert(data[2],handCard[i]) end i = i+3 elseif handCard[i] == handCard[i+1] then cclog("进入data3") for j=1, 2 do table.insert(data[3],handCard[i]) end i = i+2 else cclog("进入data4") table.insert(data[4],handCard[i]) i = i+1 end until(i>20) cclog("第二次处理后的数据") for i=1,4 do for j=1,#data[i] do cclog("data[%d][%d]=====%d",i,j,data[i][j]) end end --------------------------------------------------------------------- --从表中选出,想要的三个数据 function dataInsert(table1,table2) for i=1, #table2 do table.insert(table1,table2[i]) end end cclog("开始查找2710===========") dataInsert(data[2],dataDeal(data[4],12,17,20)) dataInsert(data[2],dataDeal(data[4],11,12,13)) dataInsert(data[2],dataDeal(data[4],1,2,3)) for i=2,17 do dataInsert(data[2],dataDeal(data[4],i,i+1,i+2)) end return data end --用于测试 handCard = {2,3,4,13,5,8,14,7,17,9,6,4,12,5,15,20,10,6,6,11} local aa = putStartCard(handCard) cclog("aaaaaaaaaaaaaaaaaaaaaaaaaaaa") for i=1,4 do for j=1,#aa[i] do cclog("aa[%d][%d]=======%d",i,j,aa[i][j]) end end cclog("aaaaaaaaaaaaaaaaaaaaaaaaaaaa")
将表handCard中数据分为四组4个(相同的数据),3个(同样的数据and2,7,10and顺子),两个(相同的数据),一个(里边有很多数据,但没有重复的,没有顺子)
注意:1.表中数据移除,不可用{}和nil,移除时,表中数据会左移
2.表中数据插入,插入的是单个数据
3.repeat循环不可以更改为for循环,for i=1,10 do end 中i只是指定循环次数
例如:for i=1, 10 do
i = i+3
cclog("%d",i)
end
输出:4,5,6,7,8,9,10,11,12,13
上边for循环中的i值失效
4.lua中没有continue导致程序循环次数过多