En esta ocasión, realizaremos un programa que ayudará a la xagua a buscar la salida al laberinto. Este programa está escrito para Tele video, pero también se puede escribir para spectrum.
Señalaremos el laberinto mediante una matriz. Los obstáculos se indicarán con un "1" y las celdas libres con un "Ø".
La entrada al laberinto (1,1) será el inerte y la salida (m, n) será la dimensión del inerte, m y n. En este caso utilizaremos m=n=8.
El ratón se definirá con su posición, es decir, con las coordenadas del punto o pila que se encuentra en el momento. Toma nota de lo que siempre estará en una pila Ø. Además, hay que definir las posibles directrices que puede tener el pañuelo. Las direcciones posibles son ocho en todas las celdas, excepto en las de borde. Así que para que el comportamiento del xagua sea igualitario en todos los lugares, rodearemos el laberinto de obstáculos. Ver cómo:
El cambio de coordenadas que supone cada dirección se presenta en la tabla NORANTZA (8,2):
Modificación de la coordenada de columnas para seguir el rumbo I NORANTZA (I,1)
Modificación de la coordenada de línea para seguir la dirección NORANTZA (I,2) I
Xagua partirá de la pila de entrada y pasará de un punto a otro huyendo de obstáculos. Cuando no se pueda seguir adelante, deberá retroceder. Por lo tanto, el camino recorrido por el sendero nos conduce por la tabla BIDEA (64,3).
En cada uno de los campos de esta tabla se guardará:
Cuando Xagua se encuentra en una pila de agua, la sobriedad deberá analizarla en busca de un "buen punto". Para que una pila sea un "buen punto" debe cumplir los siguientes requisitos:
Si encuentra entre los ocho puntos de la zona un punto que cumpla estas condiciones, se guardarán las coordenadas de la pila actual y la dirección que debe seguir para pasar al nuevo punto y se pasará al nuevo punto. Aquí seguirá el mismo proceso.
Por el contrario, si tras analizar los ocho puntos de la zona no se ve la posibilidad de pasar a ningún punto, deberá retroceder, pasando a la primera pila (la última pila introducida en la tabla BIDEA) y desde aquí intentarlo en otro sentido. El proceso es repetitivo. Se mantendrá hasta llegar a una de estas dos situaciones:
En el primer caso, el camino aparecerá marcado en rojo. En el segundo, el mensaje será:
"¡No hay camino!!"
Como habrás podido comprobar, hemos mencionado también la tabla llamada MARCA. En la siguiente tabla iremos marcando con un "1" para saber de qué cuarto ha pasado la mocha a medida que la movamos. Si no se hace esto, se puede meter en un ablandamiento interminable.
Un ejemplo te ayudará a comprender mejor: Supongamos que el modesto (3,7) está en la inerte, que el primer "buen punto" que empieza a estudiar y encontrar las celdas de la zona es el del norte (3,6). (3,7,2 norte) se guarda en la tabla BIDEA y se pasa al punto (3,6). Aquí hará lo mismo, pero si tras revisar las celdas adyacentes no se puede mover, deberá retroceder, es decir, volver al punto (3,7) e intentar la siguiente dirección (norantza 3, noreste). Seguir así cuando pueda seguir adelante y no pueda retroceder hasta llegar a la salida o comprobar que no hay camino.