Biblioteca generadora de laberintos

Los mundos de juego generados aleatoriamente son actualmente muy populares. ¿Alguien puede recomendar una biblioteca Java de código abierto para la creación de laberintos basados ​​​​en mosaicos (vista de pájaro)?

Características que tengo en mente:

Básico

  • dos salidas, que siempre están conectadas
  • dimensión x / y ajustable
  • salida: matriz bidimensional
  • ciclos

Avanzado

  • habitaciones
  • amplios pasillos
  • espacio vacio
  • número múltiple de salidas
  • salida adicional: ruta de la solución

Pro

  • campos de teletransporte
  • un concepto de llave/puerta
  • laberinto extendido de varias capas

Actualización: El libro Laberintos para programadores me ayudó. El código está en Ruby.

Esto no es realmente una biblioteca, pero la información que se muestra en esta página debería ayudar en la creación de sus mapas. en.wikipedia.org/wiki/Maze_generation_algorithm
Algunos enlaces más que pueden ser de interés: Wilson's Algorithm and Rooms and Mazes: A Procedural Dungeon Generator . En particular, creo que este último es una gran lectura.
Hice una pregunta de laberinto en PCG y tiene una buena solución de JavaScript (con respecto al resultado, no puedo juzgar sobre la fuente).
Sé que esta publicación es relativamente antigua, pero es posible que desee consultar astrolog.org/labyrnth/daedalus.htm : he usado Daedalus varias veces para la creación de laberintos y nunca tuve problemas con él. Sin embargo, podría ser más trabajo del que desea poner en él para que funcione en cualquiera que sea su proyecto.

Respuestas (1)

Actualmente estoy trabajando en una biblioteca de generación de laberintos escrita en Java 7+ y estaría dispuesto a discutir su uso.

También encontré un ejemplo de un algoritmo simple de generación de laberintos aquí , que debería ayudarlo a escribir su propio generador de laberintos si no encuentra algo que se adapte a sus propósitos.

Y, ¿la biblioteca de generación de laberintos está disponible ahora?
El algoritmo no está ni cerca de donde quiero que esté, principalmente solo genera un laberinto en un tamaño dado, pero no es una generación de laberinto "perfecta". Acabo de añadir mi correo electrónico a mi perfil. Estaría feliz de discutirlo con más detalle con cualquiera que quisiera saber más.
Crea una cuadrícula. Trátelo como un gráfico; cada vecino está conectado con otros 4 vecinos excepto en los bordes y esquinas. Elija una celda al azar, construya un árbol de expansión con esta celda como punto de partida; al expandir el árbol de expansión, elija bordes aleatorios. Coloque paredes en cada borde del gráfico que no utilice el árbol de expansión. Hecho.