Hei Leute. Bin gerade dabei ein Programm zu schreiben das ein eingelesene Sudoku auf seine Richtigkeit überprüft und wenn ja yes ausgibt ansonsten no. Bin eigentlich fast fertig hänge nurnoch an der Block-Prüfung. Leider fehlt mir jegliche Idee wie ich das umsetzen könnte. An sich bräuchte ich ja nur eine Vorschleife die dann bspw. durch eine 9x9Matrix immer durch die 3er Blöcke geht.
Code:
import java.util.Scanner;
public class Sudoku {
public static void main (String [] args){
Scanner scan = new Scanner (System.in);
int n = scan.nextInt(); //einlesen der Zahl n
if(n<1 || n>25){ //n darf nicht kleiner als 1 oder größer als 25 sein
System.exit(0);
}
int [][] matrix = new int[n][n]; //ein Array der Länge nxn wird erstellt
for(int i = 0; i<matrix.length; i++){ //befüllen des Arrays mit selbst eingelesenen Int werten
for( int j = 0; j<matrix[i].length; j++){
matrix[i][j] = scan.nextInt();
}
}
for(int i=0; i<n; i++){
for(int j = 0; j<n; j++){
for(int k = 0; k<n; k++){
if(k != i && matrix[i][j] == matrix [k][j] ||k!=j &&matrix[i][j]==matrix[i][k]){
System.out.println("no");
return;
} //prüft ob in den Zeilen oder Spalten die selbe Zahl enthalten ist
//falls ja wird ein no ausgegeben
}
}
System.out.println("yes"); //falls nein wird ein yes ausgegeben
return;
}
}
}