Está en la página 1de 27

SUDOKU

MIGUEL DE LAS HERAS


JORGE SAINZ DE LA
MAZA
GINESA TORRES LPEZ

NDIC
E

BREVE HISTORIA DEL SUDOKU

ALGORITMOS DESESTIMADOS

ALGORITMOS EMPLEADOS

ESTRUCTURA DEL PROGRAMA

CDIGO FUENTE

EJECUCIN

HISTORIA Y ORGENES DEL


SUDOKU
El sudoku es un juego de

lgica cuyo objetivo es


completar una cuadrcula con
los naturales del uno al nueve,
de manera que no se repitan
por filas, columnas ni
submatrices

Tiene precedentes histricos


como los cuadrados mgicos, y
los cuadrados latinos de Euler

Ejemplo de cuadrados latinos:


ningn elemento se repite en la
misma fila o columna

ALGUNOS VARIANTES DEL


SUDOKU
Sudoku Nonomino

Sudoku Killer - Samurai

ALGORITMOS DESESTIMADOS

CREACIN DE VECTORES DE TANTAS COMPONENTES COMO


CANDIDATOS PARA CADA HUECO DEL SUDOKU.

SI EL PROGRAMA NO CONSIGUE SALIR DEL BUCLE:

RESOLUCIN ALEATORIA CON VALORES ENTRE 1-9 USANDO LA FUNCIN


DE COMPROBACIN.

RESOLUCIN ALEATORIA CON VALORES POSIBLES, CAMBIANDO LOS


MISMOS EN CASO DE INCONGRUENCIA

ALGORITMOS
EMPLEADOS

BSQUEDA DE ELEMENTOS COINCIDENTES


EN:

FILAS

COLUMNAS

SUBMATRICES

COMPROBACIN DE POSIBLES CANDIDATOS

SI EXISTE UNO SOLO

ESCRIBIMOS DICHO VALOR

EN CASO CONTRARIO

PASAMOS A LA SIGUIENTE CELDILLA

1
3
6

7
5

2
6
5

8
5

3
2

9
7

5
3

9
3

CELDA
A
COMPROBA
R

3
6

7
5

2
6
5

8
5

3
2

9
7

5
3

9
3

CELDA
A
COMPROBA
R

3
6

7
5

2
6
5

8
5

3
2

9
7

5
3

9
3

FILAS

COLUMNA
2

CELDA
A
COMPROBA
R

3
6

7
5

2
6
5

8
5

3
2

9
7

5
3

9
3

SUBMATRIZ
2

CELDA
A
COMPROBA
R

3
6

7
5

2
6
5

8
5

3
2

9
7

5
3

9
3

NO HAY COINCIDENCIAS
2

CELDA
A
COMPROBA
R

3
6

7
5

2
6
5

8
5

3
2

9
7

5
3

9
3

TAMPOCO COINCIDE-PASAMOS DE
CELDILLA
4

CELDA
A
COMPROBA
R

3
6

7
5

2
6
5

8
5

3
2

9
7

5
3

9
3

1
3
6

7
5

8
5

3
2

2
6

CELDA
A
COMPROBA
R

6
5

9
3

1
3
6

7
5

8
5

3
2

2
6

CELDA
A
COMPROBA
R

6
5

9
3

1
3
6

7
5

8
5

3
2

2
6

CELDA
A
COMPROBA
R

6
5

9
3

NICO
VALOR
POSIBLE

1
3
6

7
5

2
6
5

ESCRIBIM
OS
EL
NMERO

8
5

3
2

6
5

9
3

ESTRUCTURA DEL PROGRAMA

MDULO:

SUBRUTINA DE LECTURA DE SUDOKU

SUBRUTINA DE RESOLUCIN DEL SUDOKU

FUNCIN COMPLEMENTARIA

PROGRAMA PRINCIPAL:

ESCRITURA DEL SUDOKU INICIAL POR PANTALLA

ESCRITURA DEL SUDOKU RESUELTO POR PANTALLA Y FICHERO

ESCRITURA DEL TIEMPO DE RESOLUCIN POR PANTALLA

MDULO (I)

SUBRUTINA DE LECTURA:

ABRE UN ARCHIVO DE TEXTO CON EL SUDOKU INICIAL ESCRITO

LEE LOS VALORES DEL SUDOKU

CARGA DICHOS VALORES EN UNA MATRIZ DE 9X9

MDULO (II)

SUBRUTINA DE RESOLUCIN:

ES LA QUE CONTIENE LOS ALGORITMOS DE RESOLUCIN DEL SUDOKU.

COMPRUEBA LOS VALORES DEL 1 AL 9 EN:

FILAS

COLUMNAS

SUBMATRICES DE 3X3

CREA UN VECTOR BINARIO DE 9 COMPONENTES ASIGNANDO:


UN 1 SI EL NMERO EST YA ESCRITO EN LOS LUGARES COMPROBADOS

UN 2 SI EL NMERO NO EST ESCRITO TODAVA

ESTA SUBRUTINA SE DESARROLLA EN BUCLE, CAMBIANDO NICAMENTE LOS


VALORES CON 0, Y PARANDO SU FUNCIONAMIENTO EN EL MOMENTO EN EL QUE
NO QUEDAN MS ELEMENTOS NULOS.

de del
o
l
mp ento
e
j
i
E
io
m
r
a
a
n
cio or bin
n
u
f
t
vec

MDULO
(III)
FUNCIN COMPLEMENTARIA:

ESTA FUNCIN COMPLEMENTA AL VECTOR BINARIO DE LA SUBRUTINA ANTERIOR.

SI EL VECTOR TIENE UN NICO 2:

EL VALOR QUE APORTE EL 2 DEBE COMPLETAR DICHA CELDA DEL SUDOKU.

LA FUNCIN COMPONENTE ENCUENTRA DICHO VALOR.

AS EL VALOR DADO POR ESTA


FUNCIN SE ESCRIBE EN EL
LUGAR CORRESPONDIENTE

PROGRAMA PRINCIPAL
(I) LLAMA A LA SUBRUTINA DE LECTURA

IMPRIME EN PANTALLA
EL SUDOKU INICIAL

PROGRAMA PRINCIPAL (II)

LLAMA A LA SUBRUTINA DE RESOLUCIN

RESUELVE EL SUDOKU

PRESENTA EL SUDOKU RESUELTO POR LA PANTALLA

PROGRAMA PRINCIPAL (III)

SE EXPORTA EL SUDOKU A UN
DOCUMENTO DE TEXTO

SE PRESENTA POR PANTALLA EL


TIEMPO DE EJECUCIN DE PROGRAMA

EJECUCIN

También podría gustarte