麻将胡牌的算法~C/C++

来源:百度知道 编辑:UC知道 时间:2024/06/17 10:53:46
万子 1-9,筒子1-9,条子1-9
将:有两个一样的牌~(要能胡的牌中要有一个将并且只能有一个将)
刻:三个一样的牌
顺:三个相临且花色一样的牌(比如1万2万3万)
胡牌规则是:将+任意组的刻+任意组的顺~
牌用数字表示,万子是1-9.筒子是11-19,条子是21-29
输入任意14张牌(1,2,3,4,11,21,21,21,12,13.........)
输出不能胡或者能胡(能胡的请输出所有可以胡的排列顺序)

11 123 456 456 456
11 123 444 555 666
类似这样的牌是可以胡的,并且有两种排列方式的

大虾出手啊!!!

万筒条好办,那几个字只能将和刻的。。。
然后能胡还要输出所有可能。。。
说个简单点的
1112345678999
随便抓个同花色的就胡了
代码不写了,大致思路说一下
首先先归类,万、筒、条、字
然后万、筒、条,理顺了,看看有没有出将,如果出将了
那么后面就判断只能刻
如果没出,后面的字可以出将
中间的难点在于,有的时候同样的三张牌,出刻了会成为断牌,所以顺必须优先判断。当然你这里不涉及牌的大小计算又相对好一点

a