#maze #depth-first #cli

bin+lib Mazeir

快速且占用内存小的迷宫生成器

1 个不稳定版本

0.2.0 2023 年 8 月 25 日

#12 in #maze

自定义许可证

550KB
352

Mazeir

用于大型迷宫

use mazeir::map::Orthogonal;
use mazeir::algorithm::DepthFirst;
use mazeir::output::Print;

fn main() {
    let mut maze = Orthogonal::new(7, 16);
    maze.depth_first();
    maze.print();
}

迷宫地图类型

  • 正交 每个单元格一个字节

算法特性

  • 深度优先

输出特性

  • 打印
  • 绘制 将数据写入 1bit png 文件

命令行界面

基础

>>> mazeir-cli --help

Usage: mazeir-cli <COMMAND>

Commands:
  orthogonal  2D orthogonal maze
  help        Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

正交迷宫

>>> mazeir-cli orthogonal --help

2D orthogonal maze

Usage: mazeir-cli orthogonal [OPTIONS] [WIDTH] [HEIGHT]

Arguments:
  [WIDTH]   Width of the maze [default: 16]
  [HEIGHT]  Height of the maze [default: 16]

Options:
  -a, --algorithm <ALGORITHM>  Algorithm of generate the maze. support DepthFirst only [default: DepthFirst]
  -s, --seed <SEED>              Seed for the maze
  -d, --draw <OUTPUT_FILE_PATH>  Draw the maze to a png file
  -p, --print                    Print the maze to stdout
  -h, --help                     Print help

特性

地图

  • 2D 正交迷宫
  • 2D 六边形迷宫
  • 3D 正交迷宫

算法

  • 深度优先
  • 某种无边框算法
  • 等等。

输出

  • 打印到标准输出
  • 绘制到 png 文件
  • 输出到 txt 文件
  • 自定义颜色索引 1bit PNG 文件

依赖项

~4–16MB
~178K SLoC