Würfelspiel; Hilfe

Strandmann86

Neues Mitglied
Hallo,

ich bin noch nicht lange dabei und probiere gerade mein erstes kleines Würfelspiel zu programmieren.
Es geht momentan darum (wie bei Kniffel), dass der Benutzer gewürfelt hat und 5 Zufallszahlen ausgespuckt bekommen hat.
Jetzt soll er sagen, welche Würfe er davon behalten will...

Mein Code sieht folgendermaßen aus: (w1 ist der Wert des Würfel 1)

System.out.println( "Welche Würfel willst du behalten? Drücke *j* oder *n* " );


Java:
while (check1 == true)  {
  
  String w1halt1 = javax.swing.JOptionPane.showInputDialog("Würfel 1: ");
  
  
  if (w1halt1.equalsIgnoreCase( "j" )) {
  System.out.println( "Gespeichert!");
  check1 = false;
  savew1=w1;
  }
  else if (w1halt1.equalsIgnoreCase(  "n" )) {
  System.out.println( "Verworfen!");
  check1 = false;
  savew1=0;
  }
  else {
  System.out.println( "Falsche Eingabe!");
  }
  
  
  }

Und das mit allen 5 Würfeln:

Darauf folgt dann folgender Code:

Java:
System.out.println( "Du hast folgende Würfe behalten:" );
  
  
  while (wurfSpeichern == true) {
  
  
  if(savew1 > 0) {
  System.out.println( savew1 + " "); 
  }
  else {}

Ebenfalls für alle 5 Würfel.

Das Programm zeigt also alle Würfe an, die man behalten will.

Mein Problem: Wie kann ich diese Würfe speichern und mit den restlichen Würfeln weiterwürfeln.

Ich würde mich freuen, wenn Ihr einem Noob wie mir helden könntet 🙂 Jeder fängt mal klein an!

Danke schonmal im Voraus!
 
Zuletzt bearbeitet von einem Moderator:
while (check1 == true) {

String w1halt1 = javax.swing.JOptionPane.showInputDialog("Würfel 1: ");


if (w1halt1.equalsIgnoreCase( "j" )) {
System.out.println( "Gespeichert!");
check1 = false;
savew1=w1;
}
else if (w1halt1.equalsIgnoreCase( "n" )) {
System.out.println( "Verworfen!");
check1 = false;
savew1=0;
}
else {
System.out.println( "Falsche Eingabe!");
}
Das kann man in eine Schleife packen, wenn du das nicht schon hast. Es kam für mich so rüber, als wenn du das 5* geschrieben hast, sprich für jeden Würfel einzeln 😉

while (check1 == true) {
Bei solchen Sachen reicht while(check1){...

Und bitte in Code-Tags packen - so ist es ziemlich schwer zu lesen 😀
 
Danke für die ANtwort:
Dass man das in eine Schleife verpacken kann, habe ich mir gedacht, ich wusste nur nicht wie ich das hinbekomme, dass bei jedem Durchgang aus savew1 -> savew2 (Gespeicherter Wert des Wurfes) wird und aus w1 -> w2 (Wert des Wurfes). Daher habe ich es tatsächlich 5mal hintereinander laufen lassen.

Das Programm erfragt durch EIngabe von "j" bzw "n", welchen Wurf man behalten will, danach spuckt es die Zahlen der WÜrfe aus, die man behalten hat.
Diese Zahlen würde ich gerne speichern und mit den restlichen Würfeln weiterwürfeln. Ich habe das Gefühl, dass das Vorhaben etwas zu komplex für mich ist, würde aber trotzdem gerne weitertüfteln, falls jemand Tipps hat, wie ich weitermachen kann.
 
Vielleicht gibt das ja eine kleine Hilfestellung (ist nur schnell daher gecoded, geht wahrscheinlich viel besser... 😀):
Java:
int[] rolled = new int[5];
boolean[] toKeep = new boolean[5];


//Würfeln...
Random rand = new Random();
for(int i = 0; i < rolled.length; i++){
    rolled[i] = rand.nextInt(5)+1;
}

//Behalten?...
Scanner scanner = new Scanner(System.in);
for(int i = 0; i < toKeep.length; i++){
    System.out.println("Would you like to keep "+rolled[i]+"?");

    boolean done = false;
    String in;
    while(!done) {
        in = scanner.nextLine().toLowerCase();
        if(in.equals("y") || in.equals("n")) {
            boolean keep = in.equals("y");
            toKeep[i] = keep;
            done = true;
        }
    }
}

//Ausgeben...
System.out.println("Kept: ");
for(int i = 0; i < toKeep.length; i++){
    if(toKeep[i]){
        System.out.println(rolled[i]);
    }
}
 

Neue Themen


Zurück
Oben