seudocodigo del sudou
Publicado por paola (1 intervención) el 28/11/2008 02:48:20
lo necesito urente gracias
Valora esta pregunta


0
Función resolverSudoku(tablero):
Si noHayCasillasVacias(tablero):
Retornar verdadero // El tablero está completo y resuelto
fila, columna = encontrarCasillaVacia(tablero) // Encontrar la primera casilla vacía
Para num en 1 a 9:
Si esNumeroValido(tablero, fila, columna, num):
tablero[fila][columna] = num // Asignar el número a la casilla vacía
Si resolverSudoku(tablero):
Retornar verdadero // El tablero se resolvió correctamente
tablero[fila][columna] = 0 // Deshacer la asignación si no se puede resolver
Retornar falso // No se pudo resolver el tablero
Función noHayCasillasVacias(tablero):
Para fila en 0 a 8:
Para columna en 0 a 8:
Si tablero[fila][columna] == 0:
Retornar falso // Hay al menos una casilla vacía
Retornar verdadero // No hay casillas vacías
Función encontrarCasillaVacia(tablero):
Para fila en 0 a 8:
Para columna en 0 a 8:
Si tablero[fila][columna] == 0:
Retornar fila, columna // Devolver la posición de la casilla vacía
Retornar -1, -1 // No se encontró ninguna casilla vacía
Función esNumeroValido(tablero, fila, columna, num):
// Verificar si el número ya está en la fila
Para c en 0 a 8:
Si tablero[fila][c] == num:
Retornar falso
// Verificar si el número ya está en la columna
Para f en 0 a 8:
Si tablero[f][columna] == num:
Retornar falso
// Verificar si el número ya está en el bloque 3x3
inicioFila = fila - (fila % 3)
inicioColumna = columna - (columna % 3)
Para f en inicioFila a inicioFila + 2:
Para c en inicioColumna a inicioColumna + 2:
Si tablero[f][c] == num:
Retornar falso
Retornar verdadero // El número es válido en esta posición