Hallo Leute,
hab ein kleines, aber Ausschlag gebendes Problem.
Und zwar habe ich eine Art Sudoku-Überprüfer erstellt. Man kann eine beliebe Zahl zwischen 1 und 25 eingeben und hat somit ein 2d-Array welches man nun mit den Werten zwischen 1 und der eingegeben Zahl füllen kann. Ist das Array gefüllt wird nun überprüft ob in den Zeilen und Spalten keine Zahl doppelt vorkommt. Falls es so ist gibt das Programm no aus, falls nicht dann yes. Nun meine 2 Fragen: Wie kann ich in der erste for-Schleife die Bedingung setzen, dass die eingelesene Zahl nur zwischen 1 und der davor eingelesenen Zahl n liegen darf? Und wie krieg es nun hin das meine Letzte for schleife alle Zeilen und alle Spalten durchgeht und die Zahlen überprüft? danke schonmal!
hab ein kleines, aber Ausschlag gebendes Problem.
Und zwar habe ich eine Art Sudoku-Überprüfer erstellt. Man kann eine beliebe Zahl zwischen 1 und 25 eingeben und hat somit ein 2d-Array welches man nun mit den Werten zwischen 1 und der eingegeben Zahl füllen kann. Ist das Array gefüllt wird nun überprüft ob in den Zeilen und Spalten keine Zahl doppelt vorkommt. Falls es so ist gibt das Programm no aus, falls nicht dann yes. Nun meine 2 Fragen: Wie kann ich in der erste for-Schleife die Bedingung setzen, dass die eingelesene Zahl nur zwischen 1 und der davor eingelesenen Zahl n liegen darf? Und wie krieg es nun hin das meine Letzte for schleife alle Zeilen und alle Spalten durchgeht und die Zahlen überprüft? danke schonmal!
Code:
import java.util.Scanner;
public class Sudoku {
public static void main (String [] args){
Scanner scan = new Scanner (System.in);
int n = scan.nextInt();
if(n<1 || n>25){
System.exit(0);
}
int [][] matrix = new int[n][n];
for(int i = 0; i<matrix.length; i++){
for( int j = 0; j<matrix[i].length; j++){
matrix[i][j] = scan.nextInt();
}
}
scan.close();
for(int i = 0; i<matrix.length; i++) {
for(int j = 0; j<matrix[i].length; j++){
if(matrix[i][j]==matrix[i][j+1] || matrix[i][j]==matrix[i+1][j]){
System.out.println("no");
return;
}
else{
System.out.println("yes");
return;
}
}
}
}
}