1 unstable release
0.2.0 | Aug 25, 2023 |
---|
#12 in #maze
550KB
352 lines
Mazeir
For Giant Maze
Library
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();
}
Maze Map Type
Orthogonal
one byte one cell
Algorithm Traits
DepthFirst
Output Traits
Print
Draw
stream write to 1bit png file
Command Line Interface
Base
>>> 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
Orthogonal Maze
>>> 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
Features
Map
- 2D orthogonal maze
- 2D hexagonal maze
- 3D orthogonal maze
Algorithm
- Depth First
- Some kind of borderless algorithm
- Etc..
Output
- Print to stdout
- Draw to png file
- Output to txt file
- Custom color index 1bit PNG file
Dependencies
~4–16MB
~178K SLoC