2016-12-15 2 views
0

Ich bin neu in Java und das ist, was ich zu tun habe:Würfel eine bestimmte Anzahl von Malen Java

Wenn ein Spieler auf 2 Würfel 5-mal in 1 Runde Doppel-Sechser bekommt, eine Zufallszahl zwischen 10 und 30 ist ausgewählt. Zum Beispiel, wenn diese Zahl 20 ist, sollten die anderen zwei Würfel zwanzig Mal gerollt werden und du multiplizierst die zwei Zahlen und erhältst das kumulative Produkt.

Dies ist nur ein kleiner Teil des großen Programm und das ist, was ich bisher getan haben:

if (ninedice == 6 && sixdice == 6) { 
    rolledDoubleSix++; 
    if (rolledDoubleSix == 5) { 
     dicerolls = (int) Math.ceil(Math.random() * (30 - 10 + 1) + 10); 
     int ninediceproduct = dicerolls; 
     int sixdiceproduct = dicerolls; 
     if (ninediceproduct > 0) { 
      ninediceproduct=(int)Math.ceil(Math.random() * 9); 
     } 
     if (sixdiceproduct > 0) { 
      sixdiceproduct = dicerolls * (int) Math.ceil(Math.random() * 6); 
     } 
     int cumulativetotal = 0; 
     int cumulative = sixdiceproduct * ninediceproduct; 
     cumulativetotal = cumulativetotal + cumulative; 
     accountpoints = accountpoints + cumulativetotal; 
     accountptsoutput.setText("" + accountpoints); 

Das Problem, das ich ist, dass ich weiß nicht, wie die beiden Würfel eine bestimmte rollen zu machen Anzahl. Wenn die Zufallszahl zwischen 10 und 30 18 ist, wie lasse ich diese Würfel 18 Mal rollen?

+2

Haben Sie gelernt, über „for-Schleifen“ noch? –

+0

Nicht viel. Aber wie kann das helfen? –

+0

Nun, eine "for-Schleife" lässt Sie immer wieder etwas wiederholen. Es scheint, als ob du hier einen haben möchtest. Daher würde ich empfehlen, sie im Online-Java-Lernprogramm von Oracle zu lesen. –

Antwort

-1

Nun, ich denke, was Sie suchen, heißt eine Schleife.

hier ist ein einfaches Beispiel: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

Die verwendeten Code zu wiederholen.

+1

Willkommen bei Stack Overflow! Während dies theoretisch die Frage beantworten könnte, [wäre es vorzuziehen] (// meta.stackoverflow.com/q/8259), hier die wesentlichen Teile der Antwort aufzunehmen und den Link als Referenz bereitzustellen. – 4castle

+0

in Ordnung thx für die Information – MilkToast

+0

Ich habe versucht, mit dieser: für (int roll = 0; roll> = dicerolls; roll ++) wo dicerolls ist random num zwischen 10 und 30 –

0

Wie andere Leute gesagt haben, benutzen Sie die for-Schleife.

Ein anderer Weg ist nur, mehrere Variablen zu haben. Verwenden Sie auch java.util.Random (und anschließend die Methode r.nextInt (Seed) + 1) nicht Math.random.

Hier ist, wie ich tun würde, es

Random r = new Random(); 
int firstSpin = r.nextInt(6) + 1; //+1 so result cannot be zero 
int secondSpin = r.nextInt(6) + 1; 
//more spins if needed 
if(firstSpin == 6 && secondSpin == 6) { 
//do something 
} 
Verwandte Themen