Hallo liebes Forum, ich verzweifle gerade an einer Übungsaufgabe meines Javagrundkurses an der Uni. Bisher hat alles geklappt nur komme ich mit den 2d Arrayüberprüfungen nicht klar.
public class SudokuChecker {
//prüfen, ob ein 9x9 Sudoku übergeben wurde
static boolean dimensionenPruefen(int[][] sudoku) {
return true;
}
//prüfen, ob ein array die Zahlen 1-9 jeweils genau ein mal enthält
static boolean zahlen1bis9Vorhanden(int[] array) {
return true;
}
//prüft, ob alle zeilen jeweils die zahlen 1-9 genau ein mal enthalten
//hierfür sollen Sie die zahlen1bis9Vorhanden Methode geschickt verwenden
static boolean alleZeilenPruefen(int[][] sudoku) {
return true;
}
//prüft, ob alle spalten jeweils die zahlen 1-9 genau ein mal enthalten
//hierfür sollen Sie die zahlen1bis9Vorhanden Methode geschickt verwenden
//Hinweis: Erstellen Sie ein Array, welches die Zahlen der zu prüfenden Spalte enthält
static boolean alleSpaltenPruefen(int[][] sudoku) {
return true;
}
//prüft, ob ein 3x3 Block innerhalb des Arrays die Zahlen 1-9 jeweils genau ein mal enthält
//Hinweis: startZeile und startSpalte sollen die Koordinaten des linken oberen Elements der 3x3 Matrix sein.
//Erstellen sie davon ausgehend ein neues Array welches alle Zahlen der 3x3 Matrix enthält und verwenden Sie zahlen1bis9Vorhanden sinnvoll.
static boolean einzelnenBlockPruefen(int[][] sudoku, int startZeile, int startSpalte) {
return true;
}
//prüft, ob alle 3x3 Blöcke jeweils die zahlen 1-9 genau ein mal enthalten
//hierfür sollen Sie die einzelnenBlockPruefen Methode geschickt verwenden
static boolean alleBloeckePruefen(int[][] sudoku) {
return true;
}
public static void main(String[] args) {
int[][] sudoku1 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 7, 8, 2 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 7, 4, 8, 5, 2, 9, 1, 6, 3 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};
int[][] sudoku2 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 7, 8, 2, 1 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 7, 4, 8, 5, 2, 9, 1, 6, 3 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};
int[][] sudoku3 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 2, 8, 2 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 7, 4, 8, 4, 2, 9, 1, 6, 3 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};
int[][] sudoku4 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 7, 8, 2 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};
int[][] sudoku5 = {
{ 1, 2, 3, 4, 5, 6, 7, 8, 9 },
{ 2, 3, 4, 5, 6, 7, 8, 9, 1 },
{ 3, 4, 5, 6, 7, 8, 9, 1, 2 },
{ 4, 5, 6, 7, 8, 9, 1, 2, 3 },
{ 5, 6, 7, 8, 9, 1, 2, 3, 4 },
{ 6, 7, 8, 9, 1, 2, 3, 4, 5 },
{ 7, 8, 9, 1, 2, 3, 4, 5, 6 },
{ 8, 9, 1, 2, 3, 4, 5, 6, 7 },
{ 9, 1, 2, 3, 4, 5, 6, 7, 8 }
};
System.out.println("Teste Sudoku Nummer 1:");
if (!dimensionenPruefen(sudoku1)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku1)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku1)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku1)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}
System.out.println("Teste Sudoku Nummer 2:");
if (!dimensionenPruefen(sudoku2)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku2)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku2)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku2)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}
System.out.println("Teste Sudoku Nummer 3:");
if (!dimensionenPruefen(sudoku3)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku3)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku3)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku3)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}
System.out.println("Teste Sudoku Nummer 4:");
if (!dimensionenPruefen(sudoku4)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku4)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku4)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku4)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}
System.out.println("Teste Sudoku Nummer 5:");
if (!dimensionenPruefen(sudoku5)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku5)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku5)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku5)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}
}
}
public class SudokuChecker {
//prüfen, ob ein 9x9 Sudoku übergeben wurde
static boolean dimensionenPruefen(int[][] sudoku) {
return true;
}
//prüfen, ob ein array die Zahlen 1-9 jeweils genau ein mal enthält
static boolean zahlen1bis9Vorhanden(int[] array) {
return true;
}
//prüft, ob alle zeilen jeweils die zahlen 1-9 genau ein mal enthalten
//hierfür sollen Sie die zahlen1bis9Vorhanden Methode geschickt verwenden
static boolean alleZeilenPruefen(int[][] sudoku) {
return true;
}
//prüft, ob alle spalten jeweils die zahlen 1-9 genau ein mal enthalten
//hierfür sollen Sie die zahlen1bis9Vorhanden Methode geschickt verwenden
//Hinweis: Erstellen Sie ein Array, welches die Zahlen der zu prüfenden Spalte enthält
static boolean alleSpaltenPruefen(int[][] sudoku) {
return true;
}
//prüft, ob ein 3x3 Block innerhalb des Arrays die Zahlen 1-9 jeweils genau ein mal enthält
//Hinweis: startZeile und startSpalte sollen die Koordinaten des linken oberen Elements der 3x3 Matrix sein.
//Erstellen sie davon ausgehend ein neues Array welches alle Zahlen der 3x3 Matrix enthält und verwenden Sie zahlen1bis9Vorhanden sinnvoll.
static boolean einzelnenBlockPruefen(int[][] sudoku, int startZeile, int startSpalte) {
return true;
}
//prüft, ob alle 3x3 Blöcke jeweils die zahlen 1-9 genau ein mal enthalten
//hierfür sollen Sie die einzelnenBlockPruefen Methode geschickt verwenden
static boolean alleBloeckePruefen(int[][] sudoku) {
return true;
}
public static void main(String[] args) {
int[][] sudoku1 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 7, 8, 2 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 7, 4, 8, 5, 2, 9, 1, 6, 3 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};
int[][] sudoku2 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 7, 8, 2, 1 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 7, 4, 8, 5, 2, 9, 1, 6, 3 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};
int[][] sudoku3 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 2, 8, 2 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 7, 4, 8, 4, 2, 9, 1, 6, 3 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};
int[][] sudoku4 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 7, 8, 2 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};
int[][] sudoku5 = {
{ 1, 2, 3, 4, 5, 6, 7, 8, 9 },
{ 2, 3, 4, 5, 6, 7, 8, 9, 1 },
{ 3, 4, 5, 6, 7, 8, 9, 1, 2 },
{ 4, 5, 6, 7, 8, 9, 1, 2, 3 },
{ 5, 6, 7, 8, 9, 1, 2, 3, 4 },
{ 6, 7, 8, 9, 1, 2, 3, 4, 5 },
{ 7, 8, 9, 1, 2, 3, 4, 5, 6 },
{ 8, 9, 1, 2, 3, 4, 5, 6, 7 },
{ 9, 1, 2, 3, 4, 5, 6, 7, 8 }
};
System.out.println("Teste Sudoku Nummer 1:");
if (!dimensionenPruefen(sudoku1)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku1)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku1)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku1)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}
System.out.println("Teste Sudoku Nummer 2:");
if (!dimensionenPruefen(sudoku2)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku2)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku2)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku2)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}
System.out.println("Teste Sudoku Nummer 3:");
if (!dimensionenPruefen(sudoku3)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku3)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku3)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku3)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}
System.out.println("Teste Sudoku Nummer 4:");
if (!dimensionenPruefen(sudoku4)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku4)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku4)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku4)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}
System.out.println("Teste Sudoku Nummer 5:");
if (!dimensionenPruefen(sudoku5)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku5)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku5)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku5)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}
}
}