O desafio:
Nesta pergunta: Nomeie a mão de pôquer que você teve que pegar uma mão de cinco cartas e identifique-a. Esta pergunta é semelhante, com duas reviravoltas:
Primeiro, a saída será minúscula. Isso permite mais golfe, pois você não precisa se preocupar com a capitalização flush
estraight
high card
one pair
two pair
three of a kind
straight
flush
full house
four of a kind
straight flush
royal flush
Em segundo lugar, com a popularidade do Texas Hold'em e do 7 card stud, nós do code golf poderemos marcar uma mão de sete cartas, certo? Ao marcar uma mão de sete cartas, use as cinco melhores cartas para sua mão e ignore as duas que você não precisa.
Referência:
Lista de mãos de pôquer: http://en.wikipedia.org/wiki/List_of_poker_hands
Entrada (levantada diretamente do encadeamento anterior)
7 cartas dos argumentos stdin ou da linha de comando. Um cartão é uma sequência de duas letras no formulário RS
, onde R é a classificação e S é o naipe. As fileiras são 2
- 9
(cartas de número), T
(dez), J
(Valete), Q
(Rainha), K
(Rei), A
(Ás). Os ternos são S
, D
, H
, C
para pás, diamantes, corações e clubes, respectivamente.
Exemplo de cartões
5H - five of hearts
TS - ten of spades
AD - ace of diamonds
Exemplo de entrada => saída desejada
3H 5D JS 3C 7C AH QS => one pair
JH 4C 2C 9S 4H JD 2H => two pair
7H 3S 7S 7D AC QH 7C => four of a kind
8C 3H 8S 8H 3S 2C 5D => full house
AS KC KD KH QH TS JC => straight
Observe que no segundo exemplo, na verdade, existem três pares, mas você só pode usar cinco cartas, por isso é two pair
. No quinto exemplo, há a three of a kind
e a straight
possível, mas a straight
é melhor, portanto, saída straight
.
Pontuação
Isso é código-golfe , então o código mais curto vence!
Errata
- Você não pode usar recursos externos.
- O ás é alto e baixo para retas.