Desafio:
Dadas duas mãos de cinco cartas, determine qual delas vence pelo ranking padrão das mãos de pôquer .
Entrada:
Dez cartões separados por espaços do stdin ou como argumentos da linha de comando, o que você preferir. As cinco primeiras cartas são a mão do jogador 1, enquanto as últimas cinco são a mão do jogador 2. Cada cartão será uma sequência de duas letras no formato RS, onde R é o rank e S é o naipe. As classificações variam de 2-9, T para dez e J, Q, K e A para Jack, Queen, King e Ace, respectivamente. Os naipes são H, D, C, S para Copas, Diamantes, Paus e Espadas, respectivamente. Você deve gerar o número do jogador que vence: '1' ou '2'.
Exemplos de cartões:
AS - the Ace of Spades
QD - the Queen of Diamonds
2C - the Two of Clubs
TH - the Ten of Hearts
Exemplos de entrada para saída:
5H 5C 6S 7S KD 2C 3S 8S 8D TD -> 2
Explicação: O Jogador 1 tem um Par de Cincos enquanto o Jogador 2 tem um Par de Oito.
5D 8C 9S JS AC 2C 5C 7D 8S QH -> 1
Explicação: Nenhum dos jogadores tem nada de especial, mas a carta alta do jogador 1 é um ás, enquanto a carta alta do jogador 2 é uma rainha.
2D 9C AS AH AC 3D 6D 7D TD QD -> 2
Explicação: O jogador 1 possui três ases, o jogador 2 possui um Flush of Diamonds.
4D 6S 9H QH QC 3D 6D 7H QD QS -> 1
Explicação: Ambos os jogadores têm um par de rainhas, mas a segunda carta mais alta do jogador 1 é nove, enquanto o jogador 2 é sete.
Regras e esclarecimentos:
- Consulte a classificação padrão das mãos de pôquer para obter detalhes sobre a comparação de mãos.
- Você pode assumir que não há cartas repetidas em cada par de mãos.
- Você pode assumir que existe um vencedor definitivo em cada caso.
- O naipe não leva em consideração o ranking de uma mão. Por exemplo, dois royal flushes de naipes diferentes são iguais (portanto, qualquer entrada em que ambos os jogadores tenham um royal flush é inválida pela regra anterior).
- Como se trata de código de golfe, a resposta mais curta vence.
Notas:
- Relacionado a esta pergunta e a esta .
- Baseado no problema do projeto Euler 54