Générez des labyrinthes de différentes formes et tailles arbitraires
Le générateur de labyrinthe peut créer des labyrinthes rectangulaires, hexagonaux, en nid d'abeille et circulaires. La génération de labyrinthe peut être effectuée à l'aide de l'algorithme de Kruskal, de la recherche en profondeur d'abord, de la recherche en largeur d'abord, de la marche aléatoire avec effacement de boucle ou de l'algorithme de Prim. Les labyrinthes peuvent être rendus au format svg ou png (en utilisant gnuplot comme intermédiaire dans ce dernier cas).
Le générateur de labyrinthes utilise gnuplot (avec un appel système gnuplot
) pour restituer des labyrinthes png. Assurez-vous donc que gnuplot 5.0+
est installé avec le support du terminal pngcairo
et se trouve dans le chemin si vous souhaitez utiliser png.
Le code est écrit en C++ 11, vous aurez besoin d'un compilateur C++ pas trop ancien pour le construire.
cd src; make
Usage: mazegen [--help] [-m <maze type>] [-a <algorithm type>] [-s <size> | -w <width> -h <height>] [-t <output type] [-o <output prefix>] Optional arguments --help Show this message and exit -m Maze type 0: Rectangular (default) 1: Hexagonal (triangular lattice) 2: Honeycomb 3: Circular 4: Circular (triangular lattice) 5: User-defined -a Algorithm type 0: Kruskal's algorithm (default) 1: Depth-first search 2: Breadth-first search 3: Loop-erased random walk 4: Prim's algorithm -s Size (non-rectangular mazes, default: 20) -w,-h Width and height (rectangular maze, default: 20) -t Output type 0: svg output (default) 1: png output using gnuplot (.plt) intermediate -o Prefix for .svg, .plt and .png outputs (default: maze)
Les arcs dans les labyrinthes circulaires sont tracés sous forme de courbes paramétriques dans gnuplot, et le rendu png peut prendre assez de temps pour les grands labyrinthes.