Lo que necesitó ahora es crear una clase de historial que le permita al programa devolverse un paso y cuando se quede sin opciones devolverse 2 y así. Alguna idea?
Para ese tipo de problemas se suele emplear el algoritmo BackTracking que no es más que un algoritmo recursivo de búsqueda que explora todas los caminos que puedan conducir a la solución del problema aunque a veces el tiempo que el algoritmo demora en encontrar la solución es mucho por lo que se suele utilizar heuristicas que son como atajos para reducir el tiempo de búsqueda( para el problema del recorrido del caballo no se puede sólo con el algoritmo BackTracking porque se demora mucho tiempo aunque de todas formas se puede utilizar).
Cuando entiendas el funcionamiento del algoritmo por ejemplo puedes hacer un tablero más pequeño para que puedas ver si te funciona el algoritmo para después ampliar el tablero y probar con heuristicas( una que conozco es explorar las casillas desde donde se tengan menos casillas para saltar)
Otra cosa llevó más o menos 500 líneas de código... Creo que me estoy enredando mucho para hacer cosas simples o es un número normal? Estimen aproximadamente cuantas les llevaría a ustedes.
Pues sólo el procedimiento del algoritmo para este problema lleva no más de 20 lineas. Para saber si la casilla en donde se quiere saltar está disponible yo me suelo llevar otras 2 lineas utilizando el método de representación 0x88 que se suele utilizar mucho en los motores de ajedrez.
Un saludo.