Sudoku-Überprüfer

buffy2299s

Mitglied
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!
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;
                }
            }
        }
    }
}
 

buffy2299s

Mitglied
Mir ist nun aufgefallen das meine for Schleife zur Prüfung einige Fehler enthält.
Für die Zeilen müsste meine Forschleife z.B. den Wert an der Stelle[0][0] nehmen und ihn mit jedem anderen Wert an der Stelle vergleichen. Danach nimmt er den nächsten Wert und vergleicht ihn mit jedem anderen und so weiter, bis er an dem letzten Wert angekommen ist, dann muss man in die nächste Zeile springen.
Und genau so müsste es mit den Spalten sein. Nur leider komm ich einfach nicht darauf wie das funktioniert..
 

Ähnliche Java Themen

Neue Themen


Oben