Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

AW: Full House - Wie effizient programmieren?

  Alt 11. Dez 2016, 19:52
So würde ich vorgehen:
  • Sortiere die Karten nach Wert. Das erleichtert praktisch viele der Erkennungen.
  • Trenne die Werte in Einzelkarten, Zwillinge, Drillinge und Vierlinge. Behalte sortiere die Kategorien nach Größe.
  • Überprüfe auf Flush.
  • Überprüfe auf Straße.
  • Gehe die Kombinationen von der höchsten durch, und breche ab wenn du eine gefunden halt.

Also etwa so:
  1. if karten.istFlush() und karten.istStraße() und karten.höchsteKarte().wert() = ASS then return ROYAL_FLUSH;
  2. if karten.istFlush() und karten.istStraße() then return STRAIGHT_FLUSH;
  3. if karten.hatVierling() then return FOUR_OF_A_KIND;
  4. if karten.hatZwilling() und karten.hatDrilling() then return FULL_HOUSE;
  5. if karten.istFlush() then return FLUSH;
  6. if karten.istStraße() then return STREET;
  7. ...

Die Zwischenergebnisse kannst du dann auch verwenden, um festzustellen, wer bei Ergebnis gewonnen hat: zum Beispiel das höhere Pärchen.


EDIT: Kniffel! ... wie bin ich denn bei Poker gelandet
Der Trick mit dem Einteilen der Würfelwerte in Kategorien (zweier, dreier, ...) klappt trotzdem. Sortieren macht bestimmt auch vieles leichter.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (11. Dez 2016 um 20:19 Uhr)
  Mit Zitat antworten Zitat