Sudoku en Pascal

Iniciado por metallou, 11 Octubre 2012, 04:02 AM

0 Miembros y 1 Visitante están viendo este tema.

metallou

Buenas! Necesito de su ayuda!! En si tengo que craer un sudoku, sabiendo que no se debe repetir ninguna cifra en una misma fila, columna o región. Para ello nos dividieron la tarea en tres partes, esta primera parte consite en escribir este procedimiento

procedure CrearCandidatos(tablero: TipoTablero; var candidatos: TipoCandidatos);
{ obtiene el conjunto de candidatos inicial para todas las celdas }

teniendo en cuenta estos tipos
Se define la siguiente estructura para representar el tablero de un sudoku:
type
   Rango9   = 0..8;
   Digito   = '0'..'9';
   TipoTablero = array [Rango9,Rango9] of Digito;

En todas las estrategias de resolución resulta fundamental llevar registro de los candidatos de las celdas aún por completar. Se propone la siguiente estructura de datos:
type
   ConjuntoDigito = set of Digito;
   TipoCandidatos = array [Rango9,Rango9] of ConjuntoDigito;

Se que deberia asumir que cada celda vacia puede contener cualquier dígito (o valor) entre 1 y 9, y luego eliminar todos los valores que hayan sido ya asignados a otras celdas en su fila, columna y caja 3x3. Esto deja cada celda vacía con una lista de candidatos, pero no se muy bien como empezar! Espero que se entienda. Bueno cualquier tipo de ayuda seria genial! Muchas gracias!