在扑克游戏中,一局牌由五张牌组成,组成的牌的大小由低向高如下:
High Card: 最高值的牌.
One Pair: 两张面值一样的牌.
Two Pairs: 两个值不同的One Pair.
Three of a Kind: 三张面值一样的牌.
Straight: 所有的牌面值为连续数值.
Flush: 所有的牌花色相同.
Full House: Three of a Kind 加一个One Pair.
Four of a Kind: 四张牌面值相同.
Straight Flush: 所有的牌花色相同并且为连续数值.
Royal Flush: 10,J,Q,K和A,并且为相同花色。
牌的面值大小排序如下:
2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King, Ace.
如果两个玩家的牌具有同样的排序(上面介绍的几种),那么他们牌的大小由手中最大的牌决定。
例如,一对8比一对5大(见下面例一);
但是如果两个玩家都用一对Q,那么他们手中最大的牌就用来比较大小(见下面例四);
如果他们最高面值的牌也相等,那么就用次高面值的牌比较,以此类推。
考虑下面的几个例子:
局 玩家 1 玩家 2 胜利者
1 5H 5C 6S 7S KD 一对5 2C 3S 8S 8D TD 一对8 玩家 2
2 5D 8C 9S JS AC 最大面值牌A 2C 5C 7D 8S QH 最大面值牌Q 玩家 1
3 2D 9C AS AH AC 三个A 3D 6D 7D TD QD 方片Flush 玩家 2
4 4D 6S 9H QH QC 一对Q最大牌9 3D 6D 7H QD QS 一对Q 最大牌7 玩家 1
5 2H 2D 4C 4D 4S 三个4的Full House 3C 3D 3S 9S 9D 三个3的Full House 玩家 1
文件 poker.txt 包含一千局随机牌。
每一行包含十张牌(用空格分隔);前五张是玩家1的牌,后五张是玩家2的牌。
所有的牌都是合理的(没有非法字符或者重复的牌)。每个玩家的牌没有顺序,并且每一局都有明确的输赢。
其中玩家1能赢多少局?
type_dict = {
'High Card': 0,
'One Pair': 1,
'Two Pairs': 2,
'Three of a Kind': 3,
'Straight': 4,
'Flush': 5,
'Full House': 6,
'Four of a Kind': 7,
'Straight Flush': 8,
'Royal Flush': 9,
}
value_dict = {
'T': 10,
'J': 11,
'Q': 12,
'K': 13,
'A': 14
}
for i in range(2, 10):
value_dict[str(i)]