Erstellen Sie Labyrinthe unterschiedlicher Form und beliebiger Größe
Der Labyrinthgenerator kann rechteckige, sechseckige, wabenförmige und kreisförmige Labyrinthe erstellen. Die Labyrinthgenerierung kann mit dem Kruskal-Algorithmus, der Tiefensuche, der Breitensuche, der schleifengelöschten Zufallswanderung oder dem Prim-Algorithmus erfolgen. Labyrinthe können im SVG- oder PNG-Format gerendert werden (im letzteren Fall wird Gnuplot als Zwischenprodukt verwendet).
Der Labyrinthgenerator verwendet Gnuplot (mit einem Systemaufruf gnuplot
), um PNG-Labyrinthe zu rendern. Stellen Sie daher sicher, dass gnuplot 5.0+
mit pngcairo
Terminalunterstützung installiert ist und sich im Pfad befindet, wenn Sie PNG verwenden möchten.
Der Code ist in C++ 11 geschrieben, Sie benötigen einen nicht allzu alten C++-Compiler, um ihn zu erstellen.
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)
Die Bögen in den kreisförmigen Labyrinthen werden in Gnuplot als parametrische Kurven dargestellt, und bei großen Labyrinthen kann das Rendern von PNG recht lange dauern.