Recorrido de Caballo

download Recorrido de Caballo

If you can't read please download the document

description

Solución

Transcript of Recorrido de Caballo

El problema del recorrido del caballo de ajedrez La peregrinacin del caballo de ajedrez consiste en su paseo por todas las casillas del tablero sin pasar dos veces por la misma, utilizando sus movimientos: dos casillas horizontales y una vertical o a la inversa. Cuando desde la ltima casilla podamos pasar a la primera se trata de una "peregrinacin cerrada".Para resolver este problema se puede utilizar la tcnica de backtracking con un algoritmo recursivo relativamente simple: marcar la posicin solicitada, hacer una lista de las siguientes posiciones vacas a las que se puede saltar desde la posicin marcar, y tomar la primera de ellas, marcndola entonces en forma recursiva. Si en alguno de los pasos recursivos no se alcanza una solucin, la casilla se desmarca y se pasa a la siguiente que estaba en la lista. Si se termina la lista y no se llega a una solucin, entonces se devuelve a la casilla anterior desde la que se hizo el llamado.La solucin en JAVA para esta solucin es la siguiente:public class ProblemaCaballo { final int numFilas; final int numColumnas; int[][] tablero; int contador; public ProblemaCaballo(int nf, int nc) { numFilas = nf; numColumnas = nc; tablero = new int[nf][nc]; } public void mostrarTablero() { for(int i=0; i