请教C语言实现斗地主判断是否为飞机牌型?
在判断牌型的时候传进来俩参数,一个存储牌的数组,一个数组长度length,其他的判断都写好了,还有飞机的不知道该怎么判断(所有这些牌型判断完之后,剩下的就是错误的牌型),因为飞机包含很多种情况:
飞机牌型包括 飞机不带其它、飞机带单、飞机带对,这么着两个三张的还好办,关键是3个三张的、4个三张的这些都是飞机,这样就不知道怎么去判断了。。
我看过网上的一个算法,它定义了一个结构体存每种牌型(单张,对子,三张,四张)都出现了哪些牌面值,结构体里面用的是vector来存,这样可以判断每个vector的大小。。但是我要用C写,只能存到数组里了,数组又不能动态的添加元素和取大小,实在是想不出办法来了。。
希望各位能给点思路。。谢啦~
下面是我在网上看到的那个算法:
struct CRAD_INDEX
{
vector <int > single_index;//记录单张的牌
vector<int> doble_index; //记录对子的牌
vector<int >three_index;//记录3张
vector<int> four_index;//记录张
}
飞机不带:three_index .sziz()*3==出牌的数量&&single_index+doble_index ==0
飞机带1张 :three_index .sziz()*3+single_index.size()==出牌的数量&&doble_index.size()==0
飞机带1对:three_index .sziz()*3+doble_index.size()*2==出牌的数量&&single_index.size()==0