Página 1 de 1

[VB6] Sudoku Solver (Src)

Publicado: 07 Mar 2013, 11:08
por Slek
Buenas,
quería compartir con vosotros esta pequeña aplicación que he hecho. Como su nombre indica, sirve para solucionar sudokus. Más que a nivel práctico, es interesante a nivel teórico (a nivel de estructuras de datos, y algoritmia), es decir el código en si. Seguramente a la mayoría no os interese, puesto que no tiene nada que ver con malware, pero bueno.
Básicamente, usa la técnica de BackTracking (y programación dinámica), pero de forma iterativa. Además, hace uso de una pila, una cola, y una lista con iterador.
La idea es, en una lista iterable, ir añadiendo las casillas vacías. En una cola, ir almacenando los posibles candidatos de dichas casillas. Y por último, ir guardando los candidatos que no hemos probado todavía, en una pila.

No pongo imagen, lo interesante es el código.

Adjunto el proyecto en .zip

Un saludo!

P.D: Por cierto, el código está casi completamente comentado.

Re: [VB6] Sudoku Solver (Src)

Publicado: 07 Mar 2013, 13:02
por Pink
Quedo muy guapo y muy interesante.

Lo único que siempre lo resuelve de la misma forma.

Fuese mejor si tuviese algo mas aleatorio.

Excelentes Ejemplos me encantó la pila.

saludos

Re: [VB6] Sudoku Solver (Src)

Publicado: 07 Mar 2013, 16:55
por Slek
Gracias :)

Ya, también lo pensé, pero los sudoku sólo deberían tener una única solución posible, es una regla.

Muchas gracias por comentar :)

Re: [VB6] Sudoku Solver (Src)

Publicado: 07 Mar 2013, 17:45
por Pink
Slek escribió:Gracias :)

Ya, también lo pensé, pero los sudoku sólo deberían tener una única solución posible, es una regla.

Muchas gracias por comentar :)
si si, eso lo entiendo pero a lo que me refiero es que los valores pueden variar de posición en el arreglo.


pero en fin es lo de menos.

Excelente Trabajo .

Re: [VB6] Sudoku Solver (Src)

Publicado: 07 Mar 2013, 18:28
por Slek
Muchas gracias :)
Hay un pequeño error en la cList, en el método remove, pero no afecta al funcionamiento del solucionador jeje

Cambiar

Código: Seleccionar todo

CopyBytes Arr(0), Arr(1), 2*(s - 1)
por

Código: Seleccionar todo

CopyBytes Arr(i), Arr(i+1), 2*(s - (i + 1))
Saludos!

Re: [VB6] Sudoku Solver (Src)

Publicado: 07 Mar 2013, 18:30
por Pielcelestial
Bonito code, me parece interesante!


Gracias

Re: [VB6] Sudoku Solver (Src)

Publicado: 10 Mar 2013, 16:40
por Slek
Gracias :)

Un saludo!

Re: [VB6] Sudoku Solver (Src)

Publicado: 12 Mar 2013, 07:24
por The_ProDiGy
Genial !

En Sudoku no pasaba del primer cuadrito xD.

Gracias por el proyecto, sera de mucha utilidad.


Re: [VB6] Sudoku Solver (Src)

Publicado: 12 Mar 2013, 23:23
por Slek
Muchas gracias!!

Un saludo! :D