No jogo de cartas pôquer, uma mão consiste em cinco cartas e é classificada, da menor para a maior, da seguinte maneira:
| N.º | Classificação da mão | Explicação |
|---|---|---|
| 1 | Carta alta | A carta de maior valor. |
| 2 | Um par | Duas cartas do mesmo valor. |
| 3 | Dois pares | Dois pares diferentes. |
| 4 | Trinca | Três cartas do mesmo valor. |
| 5 | Sequência | Todas as cartas têm valores consecutivos. |
| 6 | Flush | Todas as cartas são do mesmo naipe. |
| 7 | Full house | Uma trinca e um par. |
| 8 | Quadra | Quatro cartas do mesmo valor. |
| 9 | Straight flush | Todas as cartas têm valores consecutivos e são do mesmo naipe. |
| 10 | Royal flush | Dez, valete, dama, rei e ás do mesmo naipe. |
As cartas têm valores na seguinte ordem:
2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King, AceSe dois jogadores tiverem mãos com a mesma classificação, vence a classificação formada pelo maior valor. Por exemplo, um par de oitos vence um par de cincos (veja o exemplo n.º 1). Mas, se duas classificações empatarem, por exemplo, se ambos os jogadores tiverem um par de damas, as cartas de maior valor de cada mão serão comparadas (veja o exemplo n.º 4). Se as cartas de maior valor empatarem, as próximas cartas de maior valor serão comparadas, e assim por diante.
Considere as cinco mãos a seguir, distribuídas para dois jogadores:
| Mão | Jogador 1 | Jogador 2 | Vencedor |
|---|---|---|---|
| 1 | 5H 5C 6S 7S KD | 2C 3S 8S 8D TD | Jogador 2 |
| 2 | 5D 8C 9S JS AC | 2C 5C 7D 8S QH | Jogador 1 |
| 3 | 2D 9C AS AH AC | 3D 6D 7D TD QD | Jogador 2 |
| 4 | 4D 6S 9H QH QC | 3D 6D 7H QD QS | Jogador 1 |
| 5 | 2H 2D 4C 4D 4S | 3C 3D 3S 9S 9D | Jogador 1 |
Crie uma função que receba uma lista de mãos aleatórias distribuídas para dois jogadores. Cada string contém dez cartas (separadas por um único espaço). As cinco primeiras são as cartas do Jogador 1 e as cinco últimas são as cartas do Jogador 2. A função deve retornar o número de mãos vencidas pelo Jogador 1.
player1_wins([
"8C TS KC 9H 4S 7D 2S 5D 3S AC",
"5C AD 5D AC 9C 7C 5H 8D TD KS",
"3H 7H 6S KC JS QH TD JC 2D 8S",
"TH 8H 5C QS TC 9H 4D JC KS JS",
"7C 5H KC QH JD AS KH 4C AD 4S"
]) ➞ 2
player1_wins([
"5H QS 8S 6D 3C 8C JD AS 7H 7D",
"6H TD 9D AS JH 6C QC 9S KD JC",
"AH 8S QS 4D TH AC TS 3C 3D 5C",
"5S 4D JS 3D 8H 6C TS 3S AD 8C",
"6D 7C 5D 5H 3S 5C JC 2H 5S 3D",
"5H 6H 2S KS 3D 5D JD 7H JS 8H",
"KH 4H AS JS QS QC TC 6D 7C KS",
"3D QS TS 2H JS 4D AS 9S JC KD",
"QD 5H 4D 5D KH 7H 3D JS KD 4H"
]) ➞ 3
player1_wins([
"5S 9C KH KD 9H 5C TS 3D 7D 2D",
"5H AS TC 4D 8C 2C TS 9D 3H 8D"
]) ➞ 2