Hallo da draußen, ich hätte mal eine Logikfrage. Ich arbeite an einer (naiven) Auswertung für ein Pokerspiel und hänge grad an 2pair/fullhouse obwohl ich denke, dass es nicht schwer sein kann, fällt mir einfach nichts halbwegs gescheites ein.
Ich arbeite folgendermaßen: 5 Arrays.
1. Ein Array was NUR die Werte der Karten enthält 2-14 für karten 2-ass
2. 4 Arrays in denen jeweils alle Karten von einer Farbe liegen, absteigend sortiert.
Beispiel Fullhouse: Hier arbeite ich nur mit der ersten Liste
Ich mache für jeden Wert einen zähler und iteriere durch mein array und inkrementiere beim treffer.
-> am ende stehen im zähler wie oft die karten vorkamen.
Jetzt kommt der trickypart: wie vergleiche ich jeden zähler der 3 ist mit allen anderen ob sie 2 sind halbwegs effektiv ohne jede kombination duchzugehen?
Ich poste eifnach mal meinen Code hier rein, denke dann wird das sofort klar was ich möchte (diese Abfrage ist für ein Pärchen):
Versteht ihr die Frage?
grüße, wyldstyle
Ich arbeite folgendermaßen: 5 Arrays.
1. Ein Array was NUR die Werte der Karten enthält 2-14 für karten 2-ass
2. 4 Arrays in denen jeweils alle Karten von einer Farbe liegen, absteigend sortiert.
Beispiel Fullhouse: Hier arbeite ich nur mit der ersten Liste
Ich mache für jeden Wert einen zähler und iteriere durch mein array und inkrementiere beim treffer.
-> am ende stehen im zähler wie oft die karten vorkamen.
Jetzt kommt der trickypart: wie vergleiche ich jeden zähler der 3 ist mit allen anderen ob sie 2 sind halbwegs effektiv ohne jede kombination duchzugehen?
Ich poste eifnach mal meinen Code hier rein, denke dann wird das sofort klar was ich möchte (diese Abfrage ist für ein Pärchen):
Code:
short zaehler2 = 0;
short zaehler3 = 0;
short zaehler4 = 0;
short zaehler5 = 0;
short zaehler6 = 0;
short zaehler7 = 0;
short zaehler8 = 0;
short zaehler9 = 0;
short zaehler10 = 0;
short zaehler11 = 0;
short zaehler12 = 0;
short zaehler13 = 0;
short zaehler14 = 0;
for (int i=0;i<kartenNachNummern.length;i++){
switch(kartenNachNummern[i]){
case 2: zaehler2++;break;
case 3: zaehler3++;break;
case 4: zaehler4++;break;
case 5: zaehler5++;break;
case 6: zaehler6++;break;
case 7: zaehler7++;break;
case 8: zaehler8++;break;
case 9: zaehler9++;break;
case 10: zaehler10++;break;
case 11: zaehler11++;break;
case 12: zaehler12++;break;
case 13: zaehler13++;break;
case 14: zaehler14++;break;
default: System.out.println("FEHLER in isOnePair");
}
}
if (zaehler2== 2){
onepair = true;
onepair2 = true;
}
if (zaehler3== 2){
onepair = true;
onepair3 = true;
}
if (zaehler4== 2){
onepair = true;
onepair4 = true;
}
if (zaehler5== 2){
onepair = true;
onepair5 = true;
}
if (zaehler6== 2){
onepair = true;
onepair6 = true;
}
if (zaehler7== 2){
onepair = true;
onepair7 = true;
}
if (zaehler8== 2){
onepair = true;
onepair8 = true;
}
if (zaehler9== 2){
onepair = true;
onepair9 = true;
}
if (zaehler10== 2){
onepair = true;
onepair10 = true;
}
if (zaehler11== 2){
onepair = true;
onepairj = true;
}
if (zaehler12== 2){
onepair = true;
onepaird = true;
}
if (zaehler13== 2){
onepair = true;
onepairk = true;
}
if (zaehler14== 2){
onepair = true;
onepairass = true;
}
Versteht ihr die Frage?
grüße, wyldstyle