Servus,
ich habe an der Uni als Hausübung meine Aufgaben heute Mittag abgegeben habe es aber nicht hinbekommen (ganz). Das Programm ist in Java geschrieben und löst ein Sudoku. Es funktioniert auch alles (wie ich dass sehe) nur ein Codeschnippsel macht permanent Probleme.
Das Sudoku-Feld besteht aus einem int[9][9] und dieses Feld ist unterteilt in 9 Felder der Größe 3x3.
Ich muss nun überprüfen ob in jedem dieser 3x3-Felder die Zahlen 1-9 enthalten sind, jede Zahl darf nur einmal vorkommen.
Das ist der Code:
Alles anzeigen
ich habe an der Uni als Hausübung meine Aufgaben heute Mittag abgegeben habe es aber nicht hinbekommen (ganz). Das Programm ist in Java geschrieben und löst ein Sudoku. Es funktioniert auch alles (wie ich dass sehe) nur ein Codeschnippsel macht permanent Probleme.
Das Sudoku-Feld besteht aus einem int[9][9] und dieses Feld ist unterteilt in 9 Felder der Größe 3x3.
Ich muss nun überprüfen ob in jedem dieser 3x3-Felder die Zahlen 1-9 enthalten sind, jede Zahl darf nur einmal vorkommen.
Das ist der Code:
Quellcode
- [syntax="java"]
- int rowSquareIndex = 0, columnSquareIndex = 0;
- for (int fields = 0; fields <= 8; fields++) {
- for (int cipher = 0; cipher <= 9; cipher++) {
- for (int row = rowSquareIndex; row < (rowSquareIndex + 3); row++) {
- for (int column = columnSquareIndex; column < (columnSquareIndex + 3); column++) {
- if (configuration[row][column] == cipher) {
- squareChecking++;
- }
- if (squareChecking > 1) {
- return true;
- }
- }
- }
- squareChecking = 0;
- }
- // Changing Index of a 3x3 Field
- switch(rowSquareIndex)
- {
- case 0: rowSquareIndex = 3;
- break;
- case 3: rowSquareIndex = 6;
- break;
- case 6: rowSquareIndex = 0;
- columnSquareIndex += 3;
- break;
- }
- if (columnSquareIndex == 6 && rowSquareIndex == 6) {
- // alle durch -> ABBRUCH!!!
- return false;
- }
- }[/syntax]