Le défi:
Dans cette question: Nommez la main de poker que vous avez dû prendre une main de poker de cinq cartes et identifiez-la. Cette question est similaire, avec deux rebondissements:
Tout d'abord, la sortie sera en minuscules. Cela permet plus de golf, car vous n'avez pas à vous soucier de la capitalisation flush
etstraight
high card
one pair
two pair
three of a kind
straight
flush
full house
four of a kind
straight flush
royal flush
Deuxièmement, avec la popularité du Texas Hold'em et du Stud à 7 cartes, nous, ici, au code golf, devrions pouvoir marquer une main de poker à sept cartes , ai-je raison? Lorsque vous marquez une main de sept cartes, utilisez les cinq meilleures cartes pour votre main et ignorez les deux dont vous n'avez pas besoin.
Référence:
Liste des mains de poker: http://en.wikipedia.org/wiki/List_of_poker_hands
Entrée (relevée directement du fil précédent)
7 cartes provenant d'arguments stdin ou de ligne de commande. Une carte est une chaîne de deux lettres sur le formulaire RS
, où R est rang et S est costume. Les rangs sont 2
- 9
(cartes numérotées), T
(dix), J
(Jack), Q
(Reine), K
(Roi), A
(As). Les costumes sont S
, D
, H
, C
pour bêches, des diamants, des coeurs et des clubs respectivement.
Exemple de cartes
5H - five of hearts
TS - ten of spades
AD - ace of diamonds
Exemple d'entrée => sortie souhaitée
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
Remarquez que dans le deuxième exemple, il y a en fait trois paires, mais vous ne pouvez utiliser que cinq cartes, donc c'est le cas two pair
. Dans le cinquième exemple, il existe à la fois un three of a kind
et un straight
possible, mais un straight
est meilleur, donc la sortie straight
.
Notation
C'est le code-golf , donc le code le plus court gagne!
Errata
- Vous ne pouvez pas utiliser de ressources externes.
- Ace est à la fois haut et bas pour les lignes droites.