Die Herausforderung:
In dieser Frage: Nennen Sie die Pokerhand , für die Sie eine Fünf-Karten-Pokerhand nehmen mussten, und identifizieren Sie sie. Diese Frage ist ähnlich, mit zwei Wendungen:
Erstens wird die Ausgabe in Kleinbuchstaben erfolgen. Dies ermöglicht mehr Golf, da Sie sich nicht um die Großschreibung von flush
und kümmern müssenstraight
high card
one pair
two pair
three of a kind
straight
flush
full house
four of a kind
straight flush
royal flush
Zweitens, mit der Popularität von Texas Hold'em und 7 Card Stud sollten wir hier bei Code Golf in der Lage sein, eine 7-Karten- Pokerhand zu erzielen, stimmt's? Wenn Sie eine Hand mit sieben Karten erzielen, verwenden Sie die fünf besten Karten für Ihre Hand und ignorieren Sie die beiden, die Sie nicht benötigen.
Referenz:
Liste der Pokerhände: http://en.wikipedia.org/wiki/List_of_poker_hands
Eingabe (direkt vom vorherigen Thread abgehoben)
7 Karten aus Standard- oder Befehlszeilenargumenten. Eine Karte ist eine aus zwei Buchstaben bestehende Zeichenfolge auf dem Formular RS
, wobei R der Rang und S die Farbe ist. Die Ränge sind 2
- 9
(Zahlenkarten), T
(zehn), J
(Bube), Q
(Königin), K
(König), A
(Ass). Die Anzüge sind S
, D
, H
, C
für Pik, Karo, Herz und Clubs sind.
Beispiel für Karten
5H - five of hearts
TS - ten of spades
AD - ace of diamonds
Beispiel für Eingabe => gewünschte Ausgabe
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
Beachten Sie, dass es im zweiten Beispiel tatsächlich drei Paare gibt, Sie jedoch nur fünf Karten verwenden können two pair
. Im fünften Beispiel gibt es sowohl a three of a kind
als auch a straight
möglich, aber a straight
ist besser, also Ausgabe straight
.
Wertung
Dies ist Code-Golf , also gewinnt der kürzeste Code!
Errata
- Sie dürfen keine externen Ressourcen verwenden.
- Ace ist sowohl hoch als auch niedrig für Geraden.