RE:ayuda con un algoritmo!!!!
hace poco leí una solución a ese problema, yo intentaba encontrar un algoritmo para haskell. en fin, la solución es más o menos la siguiente (la explico con mis palabras porque no me acuerdo del algoritmo exacto).
Se supone que para resolver un puzlee basta con resolver la primera fila y primera columna, y hacer los mismo para el cuadrado de dentro. me explico?,
por ejemplo, si tenemos uno de 3 x 3, basta con encontrar
123
4
6
y resolver el puzlee 2x2 del interior usando el mismo algoritmo.
para un caso de 4 x 4 sería:
1 2 3 4
5
9
13
y el siguiente paso sería
6 7 8
10
14
espero que quede claro, en fín, este no es el único inconveniente, no se si sabes que no todas las configuraciones iniciales se pueden resolver y ahí entra otro algoritmo o una serie de formulas que ahora no recuerdo.
Ya se que lo que te he dicho es una solución muy genérica, pero espero que te sirva.
Puedes optar también por otra solución que se me había ocurrido antes de conocer esta y es crearte todas las configuraciones posibles, y teniendo una función que te diga si una configuración es sucesora a otra (es decir, que se puede llegar a ella haciendo una jugada en la anterior) hacer una busqueda de las configuraciones hasta la configuración objetivo (la solución del puzzle), es decir, encadenar sucesoras sin que se repita ninguna configuración hasta alcanzar el estado deseado, sobra decir que esto computacionalmente NO ES NADA EFICIENTE.
Hasta luego.