基于Qt的德州扑克04:比牌

牌型检测的目的是为了两位或者多位玩家比较大小。结果为平局、玩家1赢、玩家2赢。

牌型

在大部分情况下玩家的牌型不同,就按照标准牌型大小直接得出结果。

由此我们需要扩展结构体,表示5张牌的数组,当前组合牌型,以及用于后续对比的详细数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
//结果牌
struct Cards{
BrandType status;//是杂牌还是对子、顺子,减少后续判断时间
Card card[5];//5张牌
union {
OnePairCards pair;
TwoPairCards pairs;
ThreeKindCards three;
FullHouseCards full;
FourKindCards four;
StraightCards straight;//顺子
}Data;
};

不同牌型直接得出结果

1
2
3
if(cards1.status > cards2.status){
return 1;//玩家1赢
}

同牌型

第2种情况,两个玩家的牌型一样,就需要对比具体数据。

皇家同花顺

只要是皇家同花顺不论花色,直接平局。

同花顺/顺子

判断顺子的开始数值是否相同

四条

两个部分,四条对应的数值和剩下的一张单牌,简单对比一下。同理可知三条。

葫芦

两个部分,三条和一对

两对

对子1,对子2,单牌

一对

对子,3张单牌

效果

牌型检测


基于Qt的德州扑克04:比牌
https://blog.jackeylea.com/qt/compare-card-of-texas-holdem-poker/
作者
JackeyLea
发布于
2024年8月31日
许可协议