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 resueltofila, 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ó correctamentetablero[fila][columna] = 0 // Deshacer la asignación si no se puede resolver
Retornar falso // No se pudo resolver el tableroFunció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íasFunció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 3x3inicioFila = 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
