Hallo,
ich bin gerade dabei, ein Poker für meine Homepage zu programmieren.
ich hab soweit alles fertig, außer das Auslesen der Karten zur Punkte-Verteilung.
ich kann schlecht für jede Kartenkombination eine If-Abfrage machen und wollte fragen, ob so etwas auch anders geht.
Abfrage von Karten
Naja du müsstest halt erstmal rausfinden, was für eine Hand es ist (Pärchen, Straße, Full House, ...), das geht nur manuell. Tip: Vorher sortieren, dann muss man z.B. beim Full House nur noch auf AAABB und AABBB prüfen, aber nicht mehr auf AABAB.
Beispielcode mit Regulären Ausdrücken:
Beispielcode mit Regulären Ausdrücken:
Code: Alles auswählen
$hand = "JJJQQ"; //3 Buben, 2 Damen
if(preg_match('#(.{3})(.{2})|(.{2})(.{3})#', $hand, $matches))
{
//Full House
if(strlen($matches[1]) == 3) //bei (.{3})(.{2})
{
$three = $matches[1];
$two = $matches[2];
}
else //bei (.{2})(.{3})
{
$three = $matches[2];
$two = $matches[1];
}
//in $three steht jetzt drin von welcher Karte man 3 hat und in $two von welcher man zwei hat. Die müssen dann nur noch mit den anderen Spielern verglichen werden
}
elseif(preg_match('#(.*)(.{3})(.*)#', $hand, $matches))
{
//Drilling
$three = $matches[2]; // (.{3}), also das wovon man 3 Karten hat
$kicker = $matches[1] . $matches[3]; //Alles was vor und hinter dem Drilling ist, ist der Kicker
//Jetzt müssen nur noch $three und $kicker mit den anderen Spielern verglichen werden.
}
KB:knigge
@ Pyramide: Ist vllt zu viel verlangt, aber kannst du mir vllt die Auswertung programmieren?
für die $hand-Variable einfach $karten nehmen. Denn das is so angepasst, dass $karten das ist, was man hinterher hat.
Wäre toll, wenn du das machst, denn ich kapiers net, wich ich z.B. einen Royal Flush machen soll, weil ja nur von einer Farbe die 10, Bube, Dame, König und Ass dafür benötigt sind.
Und ich weiß auch net, wie ich eine Straße damit machen soll.
Bis dann,
UGC
für die $hand-Variable einfach $karten nehmen. Denn das is so angepasst, dass $karten das ist, was man hinterher hat.
Wäre toll, wenn du das machst, denn ich kapiers net, wich ich z.B. einen Royal Flush machen soll, weil ja nur von einer Farbe die 10, Bube, Dame, König und Ass dafür benötigt sind.
Und ich weiß auch net, wie ich eine Straße damit machen soll.
Bis dann,
UGC
Hi,
dies ist ein größeres Unterfangen, wende Dich daher bitte an unsere
Jobbörse
Vielleicht findet sich ja jemand.....
dies ist ein größeres Unterfangen, wende Dich daher bitte an unsere
Jobbörse
Vielleicht findet sich ja jemand.....