该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/*将5张扑克牌转化为9种牌型 */
int change(int card[])
{
if(checkTongHuaShun(card))//同花顺牌型8
{
return 8;
}
else if(checkSiTiao(card))//四条牌型7
{
return 7;
}
else if(checkSanTiaoYiDui(card))//三条一对牌型6
{
return 6;
}
else if(checkTongHua(card))//同花牌型5
{
return 5;
}
else if(checkShunzi(card))//顺子牌型4
{
return 4;
}
else if(checkSanTiao(card))//三条牌型3
{
return 3;
}
else if(checkLiangDui(card))//两对牌型2
{
return 2;
}
else if(checkDuiZi(card))//对子牌型1
{
return 1;
}
else//散牌牌型0
{
return 0;
}
}
/* 比较两数大小>返回1,
int cmp(int a,int b)
{
if(a>b)
{
return 1;
}
else if(a
{
return -1;
}
else
{
return 0;
}
}
/*比较两幅同花顺,同花,顺子,散牌的大小*/
int cmpShunOrSanPai(int card1[],int card2[])
{
if(card1[M-1]/4!=card2[M-1]/4)//第5张牌不相等
{
return cmp(card1[M-1]/4,card2[M-1]/4);//返回第5张牌的大小比较
}
else
{
return cmp(card1[M-1]%4,card2[M-1]%4);//返回第5张牌的花色比较
}
}
/*返回四条对应的扑克数字的编号*/
int maxSiTiao(int card[])
{
int i;
for(i=0;i
{
if(card[i]/4==card[i+1]/4)//返回两张连续相等的牌对应的数字的编号
{
return card[i+1];
}
}
return 0;
}
/* 比较两幅四条的大小*/
int cmpSiTiao(int card1[],int card2[])
{
return cmp(maxSiTiao(card1)/4,maxSiTiao(card2)/4);
}
/* 返回三条对应的扑克的数字编号*/
int maxSanTiao(int card[])
{
int i;
for(i=0;i
{
if(card[i]/4==card[i+1]/4&&card[i]/4==card[i+2]/4)//返回3张连续相等牌最大数字的编号
{
return card[i+2];
}
}
return 0;
}
/* 比较两幅三条的大小 */
int cmpSanTiao(int card1[],int card2[])
{
return cmp(maxSanTiao(card1)/4,maxSanTiao(card2)/4);
}
/* 返回两对中较大的一对的扑克牌对应的数字*/
int maxLiangDui(int card[])
{
int a,i;
for(i=0;i
{
if(card[i]/4==card[i+1]/4)//最后的相等的数字为最大的数字
{
a=card[i+1];
}
}
return a;
}
/* 返回两对中较小的一对对应的牌的大小 */
int minLiangDui(int card[])
{
return maxSiTiao(card);//最前面的第2个数字
}
/*比较两幅两对的大小*/
int cmpLiangDui(int card1[],int card2[])
{
if(maxLiangDui(card1)/4!=maxLiangDui(card2)/4)//最大对牌的大小不相等
{
return cmp(maxLiangDui(card1)/4,maxLiangDui(card2)/4);
}
else if(minLiangDui(card1)/4!=minLiangDui(card2)/4)//最小对牌的大小不相等
{
return cmp(minLiangDui(card1)/4,minLiangDui(card2)/4);
}
else//都相等返回最大对对应的最大花色
{
return cmp(maxLiangDui(card1)%4,maxLiangDui(card2)%4);
}
}
/* 比较两副对子的大小*/
int cmpDuiZi(int card1[],int card2[])
{
if(maxLiangDui(card1)/4!=maxLiangDui(card2)/4)//直接调用两对中最大对的返回函数即可