miércoles, 3 de noviembre de 2010

LABERINTO (PROGRAMA)

El laberinto se implementa como un arreglo de caracteres bidimensionales en el cual los pasajes se marcan con 0, las paredes con 1, la posición de salida con la letra e y la posición inicial del ratón con la letra m.
En este programa , el laberinto permite la salida esté en cualquier posición del laberinto  y permitir que los pasajes estén en los bordes. Para protegerse a sí mismo de deslizarse fuera del arreglo al tratar de continuar su ruta cuando llega a una celda abierta en uno de los bordes, el ratón también debe verificar constantemente si está en posición de borde o no.
El programa utiliza pone de manera automática un marco de 1 alrededor del laberinto introducido por el usuario.
El programa utiliza 2 pilas:
*Una pila para inicializar el laberinto.
*La segunda para implementar el retroceso.
El usuario introduce un laberinto, una línea a la vez puede tener cualquier número de filas y cualquier número de columnas.
El programa hace que todas las filas tienen la misma longitud y utiliza solo estos caracteres:
Cualquier número 1, cualquier número de 0, una e, y una m.
Las filas se insertan en la pila mazeRows en el orden en que se introducen después de añadir un 1 al principio y un 1 final.
Después de que todas se introducen, puede determinarse el tamaño del arreglo almacenado.
Las filas de la pila se transfieren al arreglo. La segunda pila mazeStack, utiliza el proceso de escapar del   laberinto con el propósito de recordar rutas no probadas para intentos subsecuentes.
Se almacena en una pila y siempre en un mismo orden el primer vecino superior, luego el inferior después a  la  izquierda y finalmente a la derecha.
Después de insertar las vías abiertas de la pila el ratón toma la posición superior y así sucesivamente hasta que llega a la salida agotando las posibilidades para evitar caer en un ciclo infinito de ruta de prueba visitada de laberinto se marca con un punto.
La pila almacena coordenadas de las posiciones de la celda utiliza dos pilas de enteros para las coordenadas  x, y. Otra forma de utilizar una pila de enteros con dos coordenadas almacenadas  con la ayuda de operación de desplazamiento con dos campos de datos x, y de modo que se usa mazeStack para almacenar los objetos MazeCell.
El programa imprime el laberinto después de que el ratón da cada paso.

No hay comentarios:

Publicar un comentario