mazegenerator
1.0.0
生成不同形状和任意大小的迷宫
迷宫生成器可以创建矩形、六边形、蜂窝状和圆形迷宫。迷宫生成可以使用 Kruskal 算法、深度优先搜索、广度优先搜索、循环擦除随机游走或 Prim 算法来完成。迷宫可以以 svg 或 png 格式呈现(在后一种情况下使用 gnuplot 作为中间)。
迷宫生成器使用 gnuplot (带有系统调用gnuplot
)来渲染 png 迷宫。因此,如果您想使用 png,请确保gnuplot 5.0+
安装有pngcairo
终端支持并且位于路径中。
该代码是用 C++ 11 编写的,您将需要一个不太古老的 C++ 编译器来构建它。
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)
圆形迷宫中的弧在 gnuplot 中绘制为参数曲线,而 png 可能需要很长时间才能渲染大型迷宫。