Ver Mensaje Individual
  #11 (permalink)  
Antiguo 28/03/2007, 22:04
Avatar de Panino5001
Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Re: Soluciones para el Desafío del Laberinto

En mi solución (la segunda, porque la de backtracking es menos eficiente y no muestra el camino más corto) lo que hago es extender secuencialmente brazos de igual longitud a partir de la posición del ratón y en todas las direcciones posibles. Al mismo tiempo que los brazos se extienden, la celda anterior a la última de cada brazo es guardada como una pseudopropiedad de la celda evaluada (llamo evaluada a la que en ese momento es última de cada brazo). Como los brazos crecen de forma pareja y en todas direcciones, cuando el queso es alcanzado por uno de ellos sé que éste se corresponde con el camino más corto. Entonces detengo la evaluación y recorro ese camino hacia atrás a partir de la celda que alcanzó al queso, guiado por la pseudopropiedad 'celda precedente' que había guardado antes. Al alcanzar al ratón, muestro la salida en pantalla.

Última edición por Panino5001; 28/03/2007 a las 22:25