Ver Mensaje Individual
  #9 (permalink)  
Antiguo 28/03/2007, 10:35
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Re: Soluciones para el Desafío del Laberinto

Hola:

Sobre mi solución, la idea que tenía era marcar cada celda visitada para no volver a pasar por la misma (inicialmente con valor 0 = camino no-visitado), de tal modo que desde la última posición del ratón, chequear todas las direcciones posibles {[N|S|E|O] - inversa(dir-actual)} y con las celdas con un valor = 0 (no visitada) generan una nueva "ruta posible".

Por cada paso, entonces, se mantienen los viejos senderos y se adicionan algunos con un paso más, que serán los que perduren (con la función "aligernado()", se eliminan todos los caminos con menos pasos dados)... es algo difícil de explicar...

Por cada paso nuevo se suman todos los posibles nuevos caminos, y se descartan todos los que se han topado con paredes o con cruces anteriormente visitados.

Los senderos están codificados con las iniciales de las direcciones que siguen: /^[N|S|O|E]$/ y se guardan simplemente cadenas de este tipo en un array que se trunca dejando solo las cadenas "completas"...

Espero haberme explicado "medianamente bien"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo