# Ratespiel (Quiz) - Falsche Antwort -> Wiederholung



## Shelly22 (29. Apr 2012)

Hallo alle zusamme,

ich bin Neu hier und freue mich dabei sein zu dürfen.
Ich lerne schon bisschen länger Java.
Aber nicht immer viel Zeit dafür.
Deswegen dauert es bisschen länger bei mir um was zu verstehen .

Meine fragen an euch....
Ich wollte nur mal ein kleines RateSpiel Testen und Programmieren.
Wenn man die Antwort/Frage falsch eingibt soll man erneut sie eingeben können
bis man es richtig eingeben hat.

Nur wie mache ich das?

if mit einer for/while schleife oder switch?

Das ganze habe ich erstmal so geschrieben:

[Java]

		String antwort = JOptionPane.showInputDialog(null,"Was ist das hier?");

		if(antwort.equalsIgnoreCase("Ein Test"))
		{
			JOptionPane.showMessageDialog(null,"Richtig");
		}
		else
		{
			JOptionPane.showMessageDialog(null,"Falsch");
		}


[/Java]

Nun fehlt halt noch der rest wo ich noch nicht so ganz bescheid weiß.
Hoffe ihr könnt mir Helfen.


LG


----------



## L-ectron-X (29. Apr 2012)

Kann man mit einer do-while Schleife machen.

```
import javax.swing.*;

public class Example {
   public static void main(String[] args) {
      Object[] possibleValues = { "Antwort wählen", "Zwei", "Eins", "Vier" };
      Object selectedValue = null;
      do {
         selectedValue = JOptionPane.showInputDialog(null,
         "Wie viele Augen hat ein Zyklop?", "Frage 1",
         JOptionPane.QUESTION_MESSAGE, null,
         possibleValues, possibleValues[0]);
      }
      while(!selectedValue.equals(possibleValues[2])); //richtige Antwort festlegen
   }
}
```


----------



## Shelly22 (29. Apr 2012)

Hallo.

Super danke dir.
Einiges kenne ich noch nicht davon.

Ist das aber nicht mit dem " Eingeben" möglich?
Was du mir als Beispiel gegeben hast ist ja eine auswahl möglichkeit 

Aber danke danke dir nochmal.
Das ist Super.
Werde damit es mal versuchen :toll:



LG


----------



## L-ectron-X (29. Apr 2012)

Was genau meinst du mit "eingeben"?
Willst du Text in ein Feld eingeben, und so lange dieser nicht stimmt, soll wiederholt werden?


----------



## Shelly22 (29. Apr 2012)

L-ectron-X hat gesagt.:


> Was genau meinst du mit "eingeben"?
> Willst du Text in ein Feld eingeben, und so lange dieser nicht stimmt, soll wiederholt werden?



Hallo,

ja ein Text eingeben. 

Ja genau so lange er nicht stimmt soll er wiederholt werden bis man ihn richtig eingeben hat. 

Meine Eingabe wird im "String antwort" gespeichert.

Dann wird sie in "if" vergleicht ob er richtig eingeben wurde.


```
String antwort = JOptionPane.showInputDialog(null,"Was ist das hier?");
            
        if(antwort.equalsIgnoreCase("Ein Test"))
        {
            JOptionPane.showMessageDialog(null,"Richtig");
        }
        else
        {
            JOptionPane.showMessageDialog(null,"Falsch");
        }
```


----------



## L-ectron-X (30. Apr 2012)

Ich habe dir mal das obige Beispiel entsprechend erweitert.
Neu daran ist jetzt eine zweite Frage. Diese muss per manueller Eingabe beantwortet werden.
Außerdem kann man jetzt das Quiz abbrechen oder eine Frage überspringen.


```
import javax.swing.*;
 
public class Example {
   public static void main(String[] args) {
     Object[] possibleValues = { "Antwort wählen", "Zwei", "Eins", "Vier" };
     Object selectedValue = null;
     do {
       selectedValue = JOptionPane.showInputDialog(null,
       "Wie viele Augen hat ein Zyklop?", "Frage 1",
       JOptionPane.QUESTION_MESSAGE, null,
       possibleValues, possibleValues[0]);
         
       if(selectedValue == null) { //Abbrechen wurde geklickt
         if(cancelOptions()) {
           break;
         }	    
       }
     }
     while(!selectedValue.equals(possibleValues[2])); //richtige Antwort festlegen
      
     String inputValue = null;
     do {
       inputValue = JOptionPane.showInputDialog(null, 
       "In welcher Stadt steht der Eiffelturm?", "Frage 2", 
       JOptionPane.QUESTION_MESSAGE);
       
       if(inputValue == null) { //Abbrechen wurde geklickt
         if(cancelOptions()) {
           break;
         }	    
       } 
     }
     while(!inputValue.equalsIgnoreCase("Paris")); //richtige Antwort festlegen      
   }
   
   private static boolean cancelOptions() {
     Object[] options = {"Überspringen", "Beenden"};
     
     int option = JOptionPane.showOptionDialog(null, 
     "Möchten Sie die Frage überspringen, oder das Quiz beenden?", 
     "Quiz - Optionen", 
     JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, 
     null, //Icon
     options, options[0]);
     
     if(option == JOptionPane.NO_OPTION) {
       System.exit(0);
     }
     
     return true;
  }
}
```

Ich denke mal, dass du dir hier alles nötige heraus ziehen kannst.


----------



## Shelly22 (3. Mai 2012)

Wow ich danke dir 

Dann teste ich es damit mal.


LG


----------

