c # nach einem Poker-Straight suchen

8

Ich versuche eine Poker-Hand-Bewertungsmethode in c # zu schreiben. Ich habe es geschafft, dies für jede Pokerhand mit linq außer einem Straight zu tun. Diejenigen, die keine Straight spielen, bestehen aus 5 Karten mit 1er Schritten für jede Karte. Ace kann hoch oder niedrig sein.

Ich habe ein Objekt namens card erstellt, das eine Farbe, einen Rang und einen Wert hat (J = 11, Q = 12 usw.). Meine Methode wird eine Liste dieses Objekts mit 7 Karten (Hole Cards und das Board) übergeben.

Eine andere Sache, die man beachten sollte ist, dass eine Straight nur gemacht werden kann, wenn der Spieler eine 5 oder 10 hat.

Siehe unten meine Methoden für andere Pokerhände und bitte lassen Sie mich wissen, wenn Sie eine Idee für die Straight-Methode haben. Pseudocode wäre auch in Ordnung.

%Vor%     
Charlie Beesley 22.09.2016, 11:37
quelle

4 Antworten

2

Dies ist möglicherweise nicht die beste Prüfung, aber ich würde sagen, dass es sehr gut lesbar ist, was normalerweise eine gute Eigenschaft ist.

Greifen Sie einfach 5 Karten, überspringen Sie Karten, die Sie bereits bei jeder Wiederholung gesehen haben, und prüfen Sie, ob für jede Sequenz eine Straße vorhanden ist. Eine geordnete Sequenz ist eine Straight, wenn sie keine Doubles enthält und wenn die Differenz der ersten und letzten Karte 5 ist.

%Vor%     
Glubus 22.09.2016 11:52
quelle
0

Ich habe Glubus einige kleine Änderungen vorgenommen. Der unten stehende Code erledigt den Job, aber Sie müssen manuell nach einem Rad (A, 1,2,3,4,5) suchen.

%Vor%     
Charlie Beesley 22.09.2016 12:38
quelle
0

ehm,

%Vor%     
Jodrell 22.09.2016 14:15
quelle
0

Ich kann nicht an einen echten Liner denken, da A 1 oder 14 sein kann, aber das sollte gut sein:

%Vor%

(Aktualisiert - danke Janne, ich habe den Code behoben)

    
Yoram Snir 22.09.2016 13:37
quelle

Tags und Links