Z
Zero
Gast
Hallo Leute, ich habe schon mal geposted. nun ist mein Pokerkalkulator der die Wahrscheinlichkeiten ausrechnet schon fast fertig. Die Knacknuss habe ich mir für den Schluss aufbewahrt, nämlich die vorhandenen Karten in der Reihenfolge zu berechnen bzw. die Strasse zu berechnen.
Kurze Erklärung:
Eine Strasse ist wenn man fünf Karten in einer Reihenfolge hat.
nehmen wir an wir haben 5 Karten, davon befinden sich 4in einer Reihe zb: 3, 6, 7, 8, 9 nun muss ich die Anzahl der mir fehlenden Karten zu Strasse berechnen können, dies wären momentan 2 nämlich die Karten 5 oder 10, mit beiden Karten könnte ich eine Strasse haben
Maximal kann man 7 Karten haben, am anfang hat man 5 und dann kommen noch 2 dazu.
Weitere Problematik
es könnte auch vorkommen das ich in meinen karten ein oder sogar 2 paare habe und trotzdem könnte ich eine Strasse haben zb: 5, 6, 6, 7, 8 nun würden mir wieder 1 Karte zur Vollendung der Strasse fehlen doch die könnte am Anfang oder am Ende sein also benötige ich 2 Karten entweder die 4 oder die 9
ah ja und ich muss nicht wissen welche karte mir genau fehlt sonder nur die Anzahl der möglichen Karten zur Vollendung der Strasse, also hier sind es 2.
Es ist auch möglich das eine Karte in der Mitte fehlt, zb: 5, 6, 8, 9, 10 zur Vollendung der Strasse fehlt mir nun die 7 also nur 1 Karte
Meine Idee:
Mann müsste die Karten die Nebeneinader sind in paare unterteilen und von jedem Paar benötigt man dann den Max und den min wert eines Paares, ich glaube so könnte es gehen (bin mir aber nicht ganz sicher). Nur bin ich nicht in der Lage dies Umzusetzen
Kann mir jemand ein bisschen behilflich sein?
-Meine nach grösse sortierten Karten befinden sich in einem array: mycards.m_wert //m_wert ist der Wert der Karte von 02 - 14.
gescheiterter versuch (hab ich nur gepostet um einen kleinen einblick zu bekommen, die Variannte ist schrott und geht nicht, der fall wenn eine Karte in der mitte fehlt wird nicht richtig berücksicht auch wenn ein paar am ende ist geht es nicht wirklich):
Kurze Erklärung:
Eine Strasse ist wenn man fünf Karten in einer Reihenfolge hat.
nehmen wir an wir haben 5 Karten, davon befinden sich 4in einer Reihe zb: 3, 6, 7, 8, 9 nun muss ich die Anzahl der mir fehlenden Karten zu Strasse berechnen können, dies wären momentan 2 nämlich die Karten 5 oder 10, mit beiden Karten könnte ich eine Strasse haben
Maximal kann man 7 Karten haben, am anfang hat man 5 und dann kommen noch 2 dazu.
Weitere Problematik
es könnte auch vorkommen das ich in meinen karten ein oder sogar 2 paare habe und trotzdem könnte ich eine Strasse haben zb: 5, 6, 6, 7, 8 nun würden mir wieder 1 Karte zur Vollendung der Strasse fehlen doch die könnte am Anfang oder am Ende sein also benötige ich 2 Karten entweder die 4 oder die 9
ah ja und ich muss nicht wissen welche karte mir genau fehlt sonder nur die Anzahl der möglichen Karten zur Vollendung der Strasse, also hier sind es 2.
Es ist auch möglich das eine Karte in der Mitte fehlt, zb: 5, 6, 8, 9, 10 zur Vollendung der Strasse fehlt mir nun die 7 also nur 1 Karte
Meine Idee:
Mann müsste die Karten die Nebeneinader sind in paare unterteilen und von jedem Paar benötigt man dann den Max und den min wert eines Paares, ich glaube so könnte es gehen (bin mir aber nicht ganz sicher). Nur bin ich nicht in der Lage dies Umzusetzen
Kann mir jemand ein bisschen behilflich sein?
-Meine nach grösse sortierten Karten befinden sich in einem array: mycards.m_wert //m_wert ist der Wert der Karte von 02 - 14.
gescheiterter versuch (hab ich nur gepostet um einen kleinen einblick zu bekommen, die Variannte ist schrott und geht nicht, der fall wenn eine Karte in der mitte fehlt wird nicht richtig berücksicht auch wenn ein paar am ende ist geht es nicht wirklich):
Code:
//Zahlen nebeneinander suchen
/* for(int j=0; j<cards; j++){ //cards = anzahl der vorhandenen Karten
if(mycards[j] != null && mycards[j+1] != null){
//Nächste Karte - Vorherige
if(mycards[j+1].m_wert - mycards[j].m_wert == 1){
straight++;
}
//Wenn ein paar zur straight mitgezählt werden soll
if( mycards[j+1].m_wert == mycards[j].m_wert &&
mycards[j].m_wert - mycards[j-1].m_wert == 1 &&
mycards[j-1] != null ||
mycards[j+1].m_wert == mycards[j].m_wert &&
mycards[j+2].m_wert - mycards[j+1].m_wert == 1 &&
mycards[j+2] != null && mycards[j+1] != null){
straight++;
}
}
}*/
//System.out.println("straight: " + straight);