Pokerhand
-
Hallo,
ich habe mir eine Klasse blatt geschrieben (beinhaltet Zahl und Farbe). Jetzt
möchte ich eine Funktion schreiben, die als Parameter 5 x Blatt vom Board
(das sind die Karten im Poker die jeder sieht) und 2 x Blatt vom Spieler
(das sind die Karten die wirklich nur der Spieler sieht), und dann zurückgibt
was er für eine Hand hat (also High Card, Pair, two Pair, Triple, Straight,
Flush, Full House, Straight Flush).Ich habe irgendwie überhaupt keine Idee wie ich das hinbekommen soll (außer
das für Pair und Triple und vllt. noch Flush
).Ps: Die Funktionen zum Abrufen von Zahl und Farbe heißen:
const int get_zahl() const; // 1 = Ass, 2-10 = 2-10, 11 = J, 12 = Q, 13 = K const int get_farbe() const; // 0 = Herz, 1 = ...Hab mir gedacht ich könnte noch ein oder zwei enum's schreiben, dass es ein
bisschen übersichtlicher wird mit den Zahlen.
-
Du hast eine begriffliche Ungereimtheit in deinem Design:
Eine Karte ist eine Karte.
Ein Blatt sind die Karten eines Spielers (seine "Hand").Deine Funktion sollte nun die Karten des Spielers in allen möglichen Kombinationen mit den offenen Karten verbinden und die Hände jeweils bewerten. Der Spieler hat die Hand mit der höchsten Bewertung.
greetz, Swordfish
-
Habe ich es etwa anders ausgedrückt? Eine Hand ist aber nicht nur die Karten
eines Spieler, sondern auch seine endgültige Pokerhand (sprich: Pair usw).Was ich nicht weiß, wie ich es machen soll ist Straight und Straight Flush.
-
D schrieb:
Habe ich es etwa anders ausgedrückt?
Kein Kommentar, denn:
D schrieb:
ich habe mir eine Klasse blatt geschrieben (beinhaltet Zahl und Farbe)
Was ist Dein Problem? Die Hände zusammenzustellen, oder zu bewerten, welche besser ist?
greetz, Swordfish
-
Ach so, Blatt. Ich meine natürlich das Blatt, die Karte.
Ich habe ein Problem mit dem bewerten, was ein Spieler für eine Hand hat (Pair...).
-
Schreib dir doch ne Funktion die aus 5 Karten deren Wert errechnet:
1-8 für high card,
9-22 für Päärchen
23-36 für Drilling usw. Wird nicht schwierig sein, da dann die Street, Street Flush & Co mit einzubauen.Eventuell würde ich sogar ein pair oder drei Werte zurückgeben, bei 3 Werten sähe das so aus:
Erster Wert: 0 für high card, 1 für pair, 3 für Drilling, 4 für 2pair, 5 für straße usw.
Zweiter Wert: Wert des oberen Pairs/Drilling oder der oberen Zahl bei Straße, je nachdem wonach als erstes Verglichen wird, wenn zwei Straßen/Drillinge in den Spielerhänden sind
Dritter Wert: Zweites Pair, Kicker etc.