Sudoku-Block-Prüfung

buffy2299s

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

TheWhiteShadow

Bekanntes Mitglied
Das Problem, was du hast, ist dass du dich mit 1<=n<=25 nicht an die Sudoku-Regeln hälst.
Ein Spielfeld der Größe n*n ist nur Gültig wenn n zwei Teiler hat oder eben eine Quadratzahl ist. z.B: (3*3) * (3*3) = 81
Alternativ geht noch sowas: (3*4) * (4*3) = 144 Felder, was bei dir zwar rauskommt, wenn du 12 eingibst, aber das kannst du dann nicht mehr nach 3 und 4 auflösen. Zumal 2*6 auch gültig wäre.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Sudoku generieren Schwierigkeitsgrad Allgemeine Java-Themen 3
J Sudoku Kommandozeile Allgemeine Java-Themen 13
J Sudoku Löser Allgemeine Java-Themen 10
B Sudoku-Überprüfer Allgemeine Java-Themen 1
K Sudoku-Solver - Backtracking Allgemeine Java-Themen 2
F Sudoku-Löser Allgemeine Java-Themen 6
E Threads Sudoku Threads Allgemeine Java-Themen 8
J Laufzeitberechnung - Sudoku Backtracking Allgemeine Java-Themen 7
F rekursiver Aufruf (Sudoku und Guice) Allgemeine Java-Themen 19
A Sudoku mittels Backtracking Problem Allgemeine Java-Themen 6
J Swing Sudoku GUI - Problem mit MaskFormatter Allgemeine Java-Themen 4
truesoul Sudoku programmieren Allgemeine Java-Themen 23
C Sudoku und KeyListener Allgemeine Java-Themen 2
M Problem bei Sudoku Allgemeine Java-Themen 21
V Strings aus externen Dateien Einlesen (Sudoku) Allgemeine Java-Themen 25
B sudoku backtrackingproblem Allgemeine Java-Themen 2
S Algorithmus für Sudoku Allgemeine Java-Themen 17
X Input/Output InputStream/Scanner(System.in) read()/hasNextLine() block unterbrechen Allgemeine Java-Themen 7
Neumi5694 Lambda - Block vs "Anweisungsliste" Allgemeine Java-Themen 8
I Java Optionals mit return-Block Allgemeine Java-Themen 2
C try-catch Block Verständnisfrage Allgemeine Java-Themen 14
P Threads Objekt im Konstruktor anders wie im Run()-Block Allgemeine Java-Themen 10
C Unendlich Wiederholungsfehler bei try catch - Block Allgemeine Java-Themen 3
T Warum ein privileg block? Allgemeine Java-Themen 0
H Probleme mit finally-Block und close() Allgemeine Java-Themen 4
N String aus Try/Catch-Block übernehen Allgemeine Java-Themen 14
B Execption auf Oberfläche werfen, try-catch-Block Allgemeine Java-Themen 6
G Initialization Block? Allgemeine Java-Themen 8
A Annotation einer Subklasse im static-Block auslesen. Allgemeine Java-Themen 6
E JNA:Zugriff auf Common-Block von Fortran bzw. Struct in C Allgemeine Java-Themen 2
J synchronized block mit this und wait() Allgemeine Java-Themen 5
D break block by label Allgemeine Java-Themen 14
M Konstruktor / statischer Block Allgemeine Java-Themen 13
G URLClassLoader stößt static Block nicht an Allgemeine Java-Themen 8
G GC Warning: Repeated allocation of very large block Allgemeine Java-Themen 35
E try/catch Block um ganzes Programm Allgemeine Java-Themen 10
conan2 static-Block in Klassen Allgemeine Java-Themen 6
H Ein synchronized Block ausreichend? Allgemeine Java-Themen 6
T rießiger try - catch - Block Allgemeine Java-Themen 13
O Test schreiben mit Äquivalenzklassen (Aufgabe Prüfung) Allgemeine Java-Themen 9
MiMa Person in einer Arraylist hinzugügen mit Prüfung ? Allgemeine Java-Themen 6
B Java Mail: Prüfung auf neue Emails Allgemeine Java-Themen 1
S Prüfung von annotierten Funktionsparamatern Allgemeine Java-Themen 8
F Zurnung nach Buchstaben und deren Prüfung Allgemeine Java-Themen 9
W Suche Framework zur Prüfung von IPv4 und IPv6 Allgemeine Java-Themen 2
vandread Kleine Generics Aufgabe aus einer Prüfung... wie ist das gemeint? Allgemeine Java-Themen 6
W Best Practice String Prüfung Allgemeine Java-Themen 3
S OOP Designrichtlinie Parameter Prüfung Allgemeine Java-Themen 7
S Hardware Prüfung Allgemeine Java-Themen 13
A Probleme mit der String-Prüfung Allgemeine Java-Themen 20
R Dynamische Sorten-Prüfung? Allgemeine Java-Themen 8
A Regulärer Ausdruck EMail-Prüfung Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben