Sudoku

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()

Gruß
Felix
 
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
	}           
}
 
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! :(
 
Zurück
Oben