Enlaces relacionados:
5.1 Métodos posibles Así como cuando resolvemos laberintos, el hecho de generarlos incluye muchas posibilidades distintas y que corresponden a un modelo determinado de laberinto. Para crear laberintos perfectos, laberintos-trenza, en tres dimensiones o bien con un solo cruce se puede hacer de las siguientes maneras:
Si queremos generar un laberinto perfecto debemos comenzar en el exterior de la pantalla e ir añadiendo trozos de pared que se vayan tocando, de manera que sea un procedimiento hecho al azar. Seguimos añadiendo paredes al azar, pero asegurándonos que cada nuevo trozo toque solamente el segmento anterior, evitando así que se cierre el laberinto; en resumen, escoge en qué dirección irá el siguiente segmento. Este cálculo hace que no se creen áreas inaccesibles en el laberinto, por lo que este sistema produce laberintos perfectos.
Crear un laberinto-trenza Crear un laberinto-trenza (que no tenga caminos sin salida) es muy sencillo: sólo debemos añadir al azar segmentos de pared por todo el laberinto, asegurándonos que cada segmento no formará ningún camino sin salida. Hay un sistema muy práctico que consta de tres partes: 1. Rodear todo el laberinto con pared, incluidos sus vértices. 2. Añadir paredes a azar sin crear caminos sin salida. 3. Después de haber hecho el laberinto utilizar una utilidad llamada remover que consiste en sacar paredes para no crear un laberinto sin solución. Para generar un laberinto sin cruces, cogemos un laberinto perfecto y bloqueamos todos los caminos que deriven del principal, tal y como se ha hecho el grafico que presentamos a continuación. El resultado es que los cruces anteriores se convertirán en dos giros en forma de U. Los laberintos en 3 dimensiones se pueden construir de una manera tan simple como la siguiente: creamos uno de 2 dimensiones y en cada punto o cuadrado imaginario, dibujamos un cubo. |
5.2 Explicación de los programas desarrollados para generar laberintos
En este programa de generación hemos creado un laberinto añadiendo paredes en un escenario inicialmente vacío. Es un programa sencillo y lo que hace es lo siguiente: escoge unas coordenadas al azar y comprueba que lo que hay en esta casilla sea tierra. Si es así, dejará una pared; en el caso contrario, volverá a generar al azar unas nuevas coordenadas. Este procedimiento se repite tantas veces como paredes queramos que haya. Cuando ejecutamos este procedimiento nos encontramos con un escenario repleto de una multitud de pequeños laberintos ya que es posible que determinados espacios queden cerrados; esto dependerá de las paredes introducidas. Contrariamente al caso anterior, en este programa empezamos con un bloque de pared. Lo que hacemos es perforarlo y crear de esta manera caminos que forman un laberinto. Este algoritmo genera un determinado número de segmentos excavados en un bloque de pared y que quedan ligados entre sí de manera que forman un tipo de red. El número de segmentos depende del nivel escogido: por ejemplo, cuando más segmentos haya más difícil será el laberinto y cuando más cortos sean, más cruces, y en consecuencia, más complejo será. Para evitar que se formen caminos dobles, antes de coger una unidad de pared y ponerle tierra, miramos qué es lo que hay en las casillas de su alrededor; si encontramos tierra, no perfora la pared y vuelve atrás. En este caso, el usuario es el que hará el nuevo laberinto. El programa consiste en un escenario lleno de pared en el cual un cursor puede ir perforando la pared y formando caminos por donde desee. Además, se puede añadir una llave una vez acabado el diseño para indicar el final. fin del laberinto. Como en los otros programas, el laberinto se puede guardar en forma de archivo de extensión .scn. |
Para descargarte el programa de generación y resolución de laberintos pulsa aquí |
Enlaces relacionados: