Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/05/2007, 06:29
jairolor
 
Fecha de Ingreso: octubre-2006
Mensajes: 9
Antigüedad: 18 años, 6 meses
Puntos: 0
problema con solucionador de Sudoku

Alguien me puede explicar lo que hace esta función recursiva que uliliza backtracking?
Gracias

static boolean solve(int i, int j, int[][] cells) {
if (i == 9) {
i = 0;
if (++j == 9) {
return true;
}
}
if (cells[i][j] != 0) { // skip filled cells
return solve(i + 1, j, cells);
}

for (int val = 1; val <= 9; ++val) {
if (legal(i, j, val, cells)) {
cells[i][j] = val;
if (solve(i + 1, j, cells)) {
return true;
}
}
}
cells[i][j] = 0; // reset on backtrack
return false;
}