Bräuchte da mal Hilfe!
-
Hallo zusammen,
Ich versuche gerade ein Java-Programm zu schreiben, das 5 Augenzahlen eines Würfels einliest (sprich 5 würfe).
Es soll mir dannach sagen ob folgende Figuren gewürfelt wurden:
**Grand - Gleiche Augenzahl auf allen würfeln
Poker gleiche Augenzahl auf 4 Würfeln
Full House 3 gleiche und 2 gleiche Augenzahlen
Sequenz - fortlaufende Folge 1,2,3,4,5 oder 2,3,4,5,6
Ich soll ein Boolean und ein Integer Array benutzen.**
Ich bin jetzt soweit, dass ich glaube den Grand mit folgenden Ausdruck abfragen zu können:
ich nenne das int-array z.B.
a[5] if (a[0] == a[1] && a[0]== a[2] && a[0]== a[3] && a[0]== a[4] ) printf("Sie haben einen Grand gewürfelt");
bei der Sequent würde ich es auch so ähnlich machen. Ich würde 4 mal ne if-verzweigung machen und fragen ob das erste element im Array =1 ist, das 2. = 2 usw.
Was ich aber überhaupt nicht verstehe ist:
-
Wozu brauche ich ein Boolean Arry in diesen Fall?
-
Wie könnte ich "poker" und "full house" abfragen ?
Danke schonmal für eure Hilfe im Vorraus!
-
-
Welches Boolean-Array, du hast ein int-Array?
Einen Poker kannst du doch sehr einfach abprüfen, 4 Werte müssen zumindest den selben Wert haben. Wenn du dir große Vergleiche sparen willst kannst du ja ein zweites Array benützen:
int[] wuerfel = new int[5]; int[] augenzahlen = new int[6]; // alles initialisieren // gewürfelte augenzahlen prüfen und eintragen for(int i = 0; i < 5; ++i) ++augenzahlen[wuerfel[i]]; // auf full-house prüfen bool drei_gleiche = false; bool zwei_gleiche = false; for(int i = 0; i < 6; ++i) { if(augenzahlen[i] >= 3) drei_gleiche = true; else if(augenzahlen[i] >= 2) zwei_gleiche = true; }
Nur so als Denkansatz, ungeprüfter Code
MfG SideWinder
-
SideWinder schrieb:
int[] wuerfel = new int[5]; int[] augenzahlen = new int[6]; // alles initialisieren // gewürfelte augenzahlen prüfen und eintragen for(int i = 0; i < 5; ++i) ++augenzahlen[wuerfel[i]]; // auf full-house prüfen boolean drei_gleiche = false; boolean zwei_gleiche = false; for(int i = 0; i < 6; ++i) { if(augenzahlen[i] >= 3) drei_gleiche = true; else if(augenzahlen[i] >= 2) zwei_gleiche = true; }
In Java heißt es nicht bool drei_gleiche sondern boolean drei_gleiche.
Will die Aufgabenstellung vielleicht, dass du in einem boolean-Array speicherst, ob die Zahlenwerte gleich sind und dann in der if-Abfrage die booleans verwendest?
boolean b[]=new boolean[5]; int a[]=new int[5]; b[0]=a[0]==a[1]; b[1]=a[1]==a[2]; b[2]=a[2]==a[3]; b[3]=a[3]==a[4]; b[4]=a[4]==a[5]; //foreach um alle Array-Elemente durchzugehen, funktioniert erst ab Java 5 boolean erg=true; for(boolean bo:b){ erg=(erg&&bo); //wenn irgendein bo false ist wird erg false }
soweit fürs grand...