Ich bin neu bei Java, dies ist mein erstes Programm, das ich entwickelt habe. Grundsätzlich geben Sie '1' ein und das bringt Sie zum Spiel.
Setzt das Level auf 1.
Dann wird eine Frage ausgewählt, basierend auf dem Level. Die erste Runde funktioniert gut. Nachdem ich in Runde 1 richtig geantwortet habe, bringt es mich zur Frage 2.
Aber bei Frage 2, wenn ich richtig antworte, bleibt es bei Frage 2 hängen und wiederholt sie, anstatt zur nächsten Frage zu wechseln.
Warum passiert das? Habe ich level++?
public static void main(String[] args) {
gameRoom();
}
public static void gameRoom() {
System.out.println("Willkommen zum Wahrheits- und Falsch-Spiel!");
System.out.println("Bitte geben Sie 1 ein, um zu starten, oder -1, um das Programm zu beenden.");
InputI = Konsole.nextInt();
if (InputI == 1) {
inGame = true;
gameProcess(1);
}
}
public static void gameProcess(int level) {
switch (level) {
case 1:
question = tof.getQuestion(1);
System.out.println("Ihre Frage lautet: " + question);
System.out.println("Bitte antworten Sie mit 'true' oder 'false'!.");
level = 1;
break;
case 2:
question = tof.getQuestion(2);
System.out.println("Ihre Frage lautet: " + question);
System.out.println("Bitte antworten Sie mit 'true' oder 'false'!.");
level = 2;
break;
case 3:
System.out.println("Hey1");
break;
}
while (inGame) {
InputS = Konsole.nextLine();
while (InputS != "") {
inGame = false;
InputS = Konsole.nextLine();
checkQuestion(level, InputS);
}
}
}
public static void checkQuestion(int level, String question) {
Boolanswer = tof.checkQuestion(level, question);
level++;
if (Boolanswer) {
System.out.println("Richtig!" + correctAnswers);
correctAnswers++;
} else {
System.out.println("Falsch! " + correctAnswers);
}
inGame = true;
gameProcess(level);
}
Das Problem könnte sein, dass das System die Schleife nicht lesen kann, solange Input != "", aber ich könnte mich irren. Hier ist die andere Klasse:
private String[][] questionsArray = new String[][]
{
{"Ist der Himmel blau?", "true"},
{"Ist der Himmel grün?", "false"}
};
private String answer = "";
private String Currentanswer = "";
private String question = "";
private int level = 0;
private boolean returnValue = false;
public String getQuestion(int Level) {
switch (Level) {
case 1:
question = questionsArray[0][0];
break;
case 2:
question = questionsArray[1][0];
break;
}
return question;
}
public String getAnswer(int Level) {
switch (Level) {
case 1:
answer = questionsArray[0][1];
break;
case 2:
answer = questionsArray[1][1];
break;
}
return answer;
}
public boolean checkQuestion(int level, String answer) {
switch (level) {
case 1:
Currentanswer = questionsArray[0][1];
if (Currentanswer.equalsIgnoreCase(answer)) {
returnValue = true;
} else {
returnValue = false;
}
break;
case 2:
Currentanswer = questionsArray[1][1];
if (Currentanswer.equalsIgnoreCase(answer)) {
returnValue = true;
} else {
returnValue = false;
}
break;
}
return returnValue;
}
Das Problem ist, dass, wenn ich die zweite Frage richtig beantworte, nichts gedruckt wird. Und wenn ich die Frage falsch beantworte, wird zur ERSTEN Frage gewechselt.
Ich habe nur 2 Fragen, ich weiß, aber ich bin nur am Testen. Das Level sollte auf 3 gehen und entsprechend den Switch-Fällen "Hey!" ausgeben.