# Würfelspiel; Hilfe



## Strandmann86 (16. Sep 2016)

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* " );  



```
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:


```
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!


----------



## Cromewell (16. Sep 2016)

Strandmann86 hat gesagt.:


> while (check1 == true) {
> 
> String w1halt1 = javax.swing.JOptionPane.showInputDialog("Würfel 1: ");
> 
> ...


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 



Strandmann86 hat gesagt.:


> while (check1 == true) {


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

Und bitte in Code-Tags packen - so ist es ziemlich schwer zu lesen


----------



## Strandmann86 (16. Sep 2016)

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.


----------



## Cromewell (16. Sep 2016)

Vielleicht gibt das ja eine kleine Hilfestellung (ist nur schnell daher gecoded, geht wahrscheinlich viel besser... ):

```
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]);
    }
}
```


----------

