| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Sudoku im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo! ich versuche gerade die Sudoku-Solver Aufgabe zu bewältigen. Leider finde ich meinen Fehler im Code nicht... Könnt Ihr ...
![]() |
| | #1 (permalink) |
| Registriert seit: 21.04.08 ![]() Likes: 0 | Anzeige Hallo! ich versuche gerade die Sudoku-Solver Aufgabe zu bewältigen. Leider finde ich meinen Fehler im Code nicht... Könnt Ihr mal draufschauen?! Danke :) Code: void fillGrid(data, grid){
x = -1
for(i=0; i<81; i++){
if((i%9) == 0)
x++
grid[x%9][i%9] = data[i]
}
}
boolean solve(row, col, grid){
if(row == 9){
row = 0
if(col++ == 9)
return true
}
if(grid[row][col] > 0)
return solve(row+1, col, grid);
for(x=1; x<10; x++) {
if(check(row, col, x, grid)) {
grid[row][col] = x;
if(solve(row+1, col, grid))
return true
}
}
grid[row][col] = 0;
return false;
}
boolean check(row, col, x, grid){
for(k=0; k<9; k++)
if(x == grid[k][col])
return false
for(k=0; k<9; k++)
if(x == grid[row][k])
return false
rowOffset = (int)(row/3)*3
colOffset = (int)(col/3)*3
for(k=0; k<3; k++)
for(m=0; m<3; m++)
if(x == grid[rowOffset+k][colOffset+m])
return false
return true;
}
void printGrid(grid){
for(row in grid)
println row
println ""
}
void doIt(){
grid = new int[9][9]
data = [ 0,0,0,0,0,0,0,0,0, 0,7,0,0,4,0,0,1,0, 3,0,1,5,0,6,4,0,8,
0,0,0,0,0,0,0,0,0, 0,6,0,0,1,0,0,4,0, 1,0,5,7,0,9,8,0,3,
0,0,0,0,0,0,0,0,0, 0,3,0,0,7,0,0,2,0, 2,0,4,8,0,5,7,0,9 ]
fillGrid(data, grid)
printGrid(grid)
if(solve(0, 0, grid))
printGrid(grid)
else
println "Keine Lösung"
}
// startet die anwendung
doIt() Felix |
| | |
| | #2 (permalink) |
| Registriert seit: 27.12.07 ![]() Likes: 39 | könntest du bitte den ganzen code (also mit headerdateien etc.) als anghang posten? auch compiler fehlermeldungen währen hilfreich. Als sprache nehme ich mal c++ an so wie ich das sehe hast du fast durchgängig die semikolons vergessen Code: boolean solve(row, col, grid){
if(row == 9){
row = 0 //hier fehlt eins
if(col++ == 9)
return true //hier auch
}
}
__________________ You shoot yourself in somebody else's foot.|Dann gabs da noch den Mathematiker der P?=NP in O(1) erklärte. |[A]| = p(·,|[A]|)+1 |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 21.04.08 ![]() Likes: 0 | Hallo! Danke für deinen Post. Es handelt sich hier um Groovy, eine Sprache die auf Java aufsetzt, also auf der Java VM arbeitet. Semikolas sind nicht pflicht und können daher weggelassen werden. ![]() Fehler krieg ich keine! Er gibt mir nur aus, dass kein Ergebnis gefunden wurde. ![]() Gruß Felix EDIT Wie ich sehe kennst du Groovy... wäre schön, wenn du deine Meinung zur Sprache in dem Thread "Erfahrungsaustausch Groovy" posten könntest... bisher gabs noch keine Antworten ![]() EDIT [ 2 ] Für die, die es interessiert... es lang an Groovy, scheinbar hat es sich an irgendetwas an meinem Code verschluckt und somit nie eine Lösung angezeigt, ich hab das ganze dann mal nach python und java portiert und dort lief es einwandfrei... Finde jedoch schade, dass ich hier keine Hilfe bekommen habe bzgl. meines Problems! |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Sudoku Cheat-Prog. | Elderan | Programmieraufgaben | 33 | 12.04.10 19:09 |
| Sudoku-Generator | CDW | Programmieraufgaben | 1 | 04.08.09 02:12 |
| Sudoku programmieren | jami | Code Kitchen | 1 | 16.10.05 15:05 |