Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - metallou

#1
Programación General / Sudoku en Pascal
11 Octubre 2012, 04:02 AM
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!