|
Hallo, ich habe folgende Aufgabe: ich soll in einer do/while-Schleife mit einem "virtuellen" 6-seitigen Würfel würfeln, bis exakt 3-mal hintereinander dieselbe Augenzahl geworfen wird.
ich habe bereits:
public static void main(String[] args) { int wuerfel; int i = 1; do { wuerfel = (int)(Math.random()*6+1); System.out.print(wuerfel+", "); i++; } while ();
mein Problem ist, dass ich nicht so recht weiß, was ich in while( ) schreiben soll. Vll könnte mir jemand Tipps geben? Danke schonmal im Voraus :-)
Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen." |
|
|
Zunächst könntest du dir merken, was die Zahl aus dem letzten oder den letzten beiden Durchgängen war und daraus die Bedingung herleiten :-)
|
CKims 
00:51 Uhr, 09.04.2013
|
_int wuerfel; _int lastWuerfel=-1; _int _int nInRow=0;
do
wuerfel=(int)(Math.random()*6+1);
//wenn der letzte wurf gleich dem aktuellen, dann inkrementiere nInRow... sonst setz nInRow wieder auf null
lastWuerfel=wuerfel;
while("kommst du jetzt drauf?");
lg
|
|
Vielen Dank für die Tipps! :-) also, jetzt schaut das Ganze so aus:
public static void main(String[] args) { int wuerfel; int lastWuerfel = 2; int nInRow = 0; do { wuerfel = (int)(Math.random()*6+1); System.out.println(wuerfel); if(wuerfel==lastWuerfel) { nInRow++; lastWuerfel=wuerfel; } else nInRow=0; } while(nInRow<3); } }
Funktioniert eigentlich (wenn ich lastWuerfel = einer Augenzahl setze) nur wie schaff ich, dass lastWuerfel zu Beginn nicht eine spezielle Zahl ist, sondern eine Zahl zwischen 1 und 6? oder besser gesagt, dass der Wert von lastWuerfel meinem ersten Wurf entspricht?
Sorry, für die wahrscheinlich blöden Fragen, ich programmiere erst seit kurzem und muss noch viel lernen :/
|
|
Dies kannst du durch eine Abfrage erreichen, ob du gerade den ersten Wurf vollziehst.
Also:
if (nInRow lastWuerfel = wuerfel;
|
Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.
|