Teil meines Codes, wo Sie ein Puzzle mit der Idee der Neuabstimmung eines gemischten 4x4-Nummern-Array wieder in seinen ursprünglichen Zustand spielen können. der Benutzer gibt bestimmte Befehle ein, z. Reihe 0 Reihe 1, und eine Schleife macht den Befehl, druckt das letzte Puzzle und fragt nach dem Befehl und sollte enden, wenn das Puzzle mit dem ursprünglichen Zustand des Puzzles übereinstimmt. Meine Schleife bricht nie wieder, wenn ich zum ursprünglichen Puzzle zurückkehrt und druckt fortwährend ungültige Eingaben, selbst wenn die korrekte Eingabe eingegeben wurde. Wie kann ich diese Probleme beheben? ist dies nur das Spiel Verfahren Teil des CodesSchleife nicht unterbrochen und ungültige Eingabe immer angezeigt
static void play(int[][] puzzle) {
reset(puzzle);
int[][] z = new int[N][N];
reset(z);
print(puzzle);
for (int i = 0; i < 5; i++) {
randomRotation(puzzle);
}
print(puzzle);
while (puzzle!=z) {
System.out.println("enter row x or col x: ");
Scanner input = new Scanner(System.in);
String x = input.nextLine();
if (!x.equals("row 0") || !x.equals("row 1") ||!x.equals("row 2") ||!x.equals("row 3") ||!x.equals("col 0") ||!x.equals("col 1") ||!x.equals("col 2") ||!x.equals("col3")) {
System.out.println("invalid input");
}
if (x.equals("row 0")) {
rotateRow(puzzle, 0);
print(puzzle);
}
if (x.equals("row 1")) {
rotateRow(puzzle, 1);
print(puzzle);
}
if (x.equals("row 2")) {
rotateRow(puzzle, 2);
print(puzzle);
}
if (x.equals("row 3")) {
rotateRow(puzzle, 3);
print(puzzle);
}
if (x.equals("col 0")) {
rotateColumn(puzzle, 0);
print(puzzle);
}
if (x.equals("col 1")) {
rotateColumn(puzzle, 1);
print(puzzle);
}
if (x.equals("col 2")) {
rotateColumn(puzzle, 2);
print(puzzle);
}
if (x.equals("col 3")) {
rotateColumn(puzzle, 3);
print(puzzle);
}
}
}
"Zeile 0" ist nicht "Zeile 1" und "Zeile 1" ist nicht "Zeile 0" Ich schlage vor, Sie verwenden eine switch-Anweisung, um alle diese Prüfungen zu kombinieren. –