手牌统计
手牌统计指统计手里的牌,单张牌,对子牌,三条,四条牌的一个整体统计。
具体讲返回一个list的字典对象。
{
1=[[a],[b]]
2=[[a],[b]]
3=[[a],[b]]
4=[[a],[b]]
}
具体算法
1.首先对牌的数据进行有效排序
2.遍历手牌
2.1.1 牌型一致,将牌push进临时牌组
2.1.2 牌型不一样,将缓存牌组加入牌组字典,重置牌组,将新牌push进临时牌组
2.2.1 最后一张牌,将缓存牌组加入牌组字典
整体说明
牌组可以用数组进行操作 ,但是也可以封装一个具体的牌组模型。lua代码实现如下。
local ddz_increse=LClass("ddz_increse")
function ddz_increse:ctor()
self.list={}
self.index=0
end
--初始化
function ddz_increse:init()
self.index=0
end
--增加牌
function ddz_increse:increse(value)
self.index=self.index+1
self.list[self.index]=value
end
--获取具体牌组
function ddz_increse:get_content(container)
--避免重复构造table
for i=1,self.index do
container[i]=self.list[i]
end
end