
18/05/2007, 06:29
|
| | 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;
} |