Poker-Blätter

Problem 54

Im Kartenspiel Poker besteht ein Blatt aus 5 Karten, und die Blätter sind, vom schlechtesten zum besten, auf die folgende Weise geordnet:

  • Höchste Karte: Karte mit dem höchsten Wert.
  • Ein Paar: Zwei Karten mit dem gleichen Wert.
  • Zwei Paare: Zwei verschiedene Paare.
  • Drilling: Drei Karten mit dem gleichen Wert.
  • Straße: Alle Karten haben aufeinanderfolgende Werte.
  • Flush: Alle Karten haben die gleiche Farbe.
  • Full House: Ein Drilling und ein Paar.
  • Vierling: Vier Karten mit dem gleichen Wert.
  • Straight Flush: Alle Karten haben aufeinanderfolgende Werte und die gleiche Farbe.
  • Royal Flush: Zehn, Bube, Dame, König, Ass, in der gleichen Farbe.

Die Kartenwerte sind wie folgt sortiert:
2, 3, 4, 5, 6, 7, 8, 9, 10, Bube, Dame, König, Ass.

Wenn zwei Spieler Blätter mit dem selben Rang haben, gewinnt der Rang mit dem höchsten Kartenwert. Beispiel: Ein Achter-Paar schlägt ein Fünfer-Paar (siehe Beispiel 1 unten). Wenn diese Ränge auch gleichwertig sind, beispielsweise wenn beide Spieler ein Damen-Paar haben, werden die höchsten Karten beider Blätter verglichen (siehe Beispiel 4 unten); wenn diese höchsten Karten gleich groß sind, zählen die nächsten höchsten Karten, und so weiter.

Beachten Sie die folgenden 5 Blätter, die an die zwei Spieler ausgeteilt wurden:

Blatt   Spieler 1   Spieler 2   Gewinner
1   5H 5C 6S 7S KD
Fünfer-Paar
  2C 3S 8S 8D TD
Achter-Paar
  Spieler 2
2   5D 8C 9S JS AC
Höchste Karte Ass
  2C 5C 7D 8S QH
Höchste Karte Dame
  Spieler 1
3   2D 9C AS AH AC
Drei Asse
  3D 6D 7D TD QD
Flush mit Karo
  Spieler 2
4   4D 6S 9H QH QC
Damen-Paar
Höchste Karte Neun
  3D 6D 7H QD QS
Damen-Paar
Höchste Karte Sieben
  Spieler 1
5   2H 2D 4C 4D 4S
Full House
Mit drei Vieren
  3C 3D 3S 9S 9D
Full House
Mit drei Dreien
  Spieler 1

Die Datei poker.txt enthält eintausend zufällige Blätter, die den zwei Spielern ausgeteilt werden. Jede Zeile der Datei enthält zehn Karten (mit einem Leerzeichen getrennt): Die ersten 5 Karten sind die Karten von Spieler 1, die letzten 5 sind die Karten von Spieler 2. Sie können voraussetzen, dass alle Blätter gültig sind (keine ungültigen Zeichen oder doppelte Karten), die Blätter von jedem Spieler in keiner bestimmten Reihenfolge sind, und es bei jedem Blatt einen klaren Gewinner gibt.

Bei wie vielen der Blätter gewinnt Spieler 1?

HINWEIS: Da projecteuler.net englisch ist, sind auch die Abkürzungen der Karten auf Englisch. Bei den Kartennamen bedeutet J(Jack) Bube, Q(Queen) Dame, K(King) König und A(Ace) Ass. Bei den Farben bedeutet C(Clubs) Kreuz, H(Hearts) Herz, D(Diamonds) Karo und S(Spades) Pik. Wichtig ist auch, dass die Karte Zehn nicht etwa 10, sondern T(Ten) lautet.