sudoku resuelto con fortran
Post on 23-Dec-2015
323 Views
Preview:
DESCRIPTION
TRANSCRIPT
ÍNDICE
BREVE HISTORIA DEL SUDOKU ALGORITMOS DESESTIMADOS
ALGORITMOS EMPLEADOS ESTRUCTURA DEL PROGRAMA
CÓDIGO FUENTE EJECUCIÓN
El sudoku es un juego de lógica cuyo objetivo es completar una cuadrícula con los naturales del uno al nueve, de manera que no se repitan por filas, columnas ni submatrices
Tiene precedentes históricos como los cuadrados mágicos, y los cuadrados latinos de Euler
HISTORIA Y ORÍGENES DEL SUDOKU
Ejemplo de cuadrados latinos: ningún elemento se repite en la
misma fila o columna
ALGORITMOS DESESTIMADOS
CREACIÓN DE VECTORES DE TANTAS COMPONENTES COMO CANDIDATOS PARA CADA HUECO DEL SUDOKU.
SI EL PROGRAMA NO CONSIGUE SALIR DEL BUCLE: RESOLUCIÓN ALEATORIA CON VALORES ENTRE 1-9 USANDO LA FUNCIÓN
DE COMPROBACIÓN.
RESOLUCIÓN ALEATORIA CON VALORES POSIBLES, CAMBIANDO LOS MISMOS EN CASO DE INCONGRUENCIA
ALGORITMOS EMPLEADOS
BÚSQUEDA DE ELEMENTOS COINCIDENTES EN: FILAS
COLUMNAS
SUBMATRICES
COMPROBACIÓN DE POSIBLES CANDIDATOS SI EXISTE UNO SOLO
ESCRIBIMOS DICHO VALOR
EN CASO CONTRARIO
PASAMOS A LA SIGUIENTE CELDILLA
4 1 7 9 6
3 5 4 2
6 9 2 8
6 3
2 5 9
8 7
5 1 6 9
1 8 5 3
3 8 4
CELDAA
COMPROBAR
TAMPOCO COINCIDE-PASAMOS DE CELDILLA
ESTRUCTURA DEL PROGRAMA
MÓDULO:
SUBRUTINA DE LECTURA DE SUDOKU
SUBRUTINA DE RESOLUCIÓN DEL SUDOKU
FUNCIÓN COMPLEMENTARIA
PROGRAMA PRINCIPAL:
ESCRITURA DEL SUDOKU INICIAL POR PANTALLA
ESCRITURA DEL SUDOKU RESUELTO POR PANTALLA Y FICHERO
ESCRITURA DEL TIEMPO DE RESOLUCIÓN POR PANTALLA
MÓDULO (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
MÓDULO (II) SUBRUTINA DE RESOLUCIÓN:
ES LA QUE CONTIENE LOS ALGORITMOS DE RESOLUCIÓN 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 NÚMERO ESTÁ YA ESCRITO EN LOS LUGARES COMPROBADOS
UN 2 SI EL NÚMERO NO ESTÁ ESCRITO TODAVÍA
ESTA SUBRUTINA SE DESARROLLA EN BUCLE, CAMBIANDO ÚNICAMENTE LOS VALORES CON 0, Y PARANDO SU FUNCIONAMIENTO EN EL MOMENTO EN EL QUE
NO QUEDAN MÁS ELEMENTOS NULOS.
MÓDULO (III) FUNCIÓN COMPLEMENTARIA:
ESTA FUNCIÓN 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 FUNCIÓN COMPONENTE ENCUENTRA DICHO VALOR.
ASÍ EL VALOR DADO POR ESTA FUNCIÓN SE ESCRIBE EN EL LUGAR CORRESPONDIENTE
PROGRAMA PRINCIPAL (II) LLAMA A LA SUBRUTINA DE RESOLUCIÓN
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 EJECUCIÓN DE PROGRAMA
top related