maze-rs

Maze for Programmers (Rust)

Status

Build Status

Prerequisites

Usage

``` $ ./target/release/maze -h Maze Generator 0.1.0 Tomas Korcak korczis@gmail.com

USAGE: maze [FLAGS] [OPTIONS]

FLAGS: -h, --help Prints help information -r, --rest Run REST Server -V, --version Prints version information -v, --verbose Verbose mode

OPTIONS: -a, --algorithm Algorithm to use [default: aldous-broder] [values: aldous-broder, binary, sidewinder] -f, --format Output format to use [default: ascii] [values: ascii, json] -y, --height Height of Maze [default: 5] -p, --rest-port REST Port [default: 5000] -x, --width Width of Maze [default: 5] ```

Generator Algoritms

Output Formats

Benchmark

Low-Level Benchmark

``` $ cargo bench Finished release [optimized] target(s) in 0.0 secs Running target/release/deps/maze-0b23e703e6e9e01c

running 6 tests test types::grid::tests::benchgeneratealdousbroder100x100 ... bench: 64,849,515 ns/iter (+/- 25,377,838) test types::grid::tests::benchgeneratealdousbroder10x10 ... bench: 230,391 ns/iter (+/- 68,654) test types::grid::tests::benchgeneratebinary100x100 ... bench: 5,534,126 ns/iter (+/- 2,441,840) test types::grid::tests::benchgeneratebinary10x10 ... bench: 40,329 ns/iter (+/- 10,944) test types::grid::tests::benchgeneratesidewinder100x100 ... bench: 5,448,319 ns/iter (+/- 1,347,872) test types::grid::tests::benchgeneratesidewinder10x10 ... bench: 39,051 ns/iter (+/- 8,453)

test result: ok. 0 passed; 0 failed; 0 ignored; 6 measured

 Running target/release/maze-1018e5569854def3

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured ```

Aldous-Broder

``` $ time ./target/release/maze -a aldous-broder -x 1000 -y 1000 > maze.txt

real 0m16.928s user 0m13.188s sys 0m3.555s ```

Binary

``` $ time ./target/release/maze -a binary -x 1000 -y 1000 > maze.txt

real 0m1.804s user 0m1.476s sys 0m0.268s ```

Sidewinder

``` $ time ./target/release/maze -a sidewinder -x 1000 -y 1000 > maze.txt

real 0m1.953s user 0m1.539s sys 0m0.299s ```

Example

``` $ ./target/debug/maze -x 20 -y 20

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | | | | | | | | | | + +---+ + + + +---+ + + + + + +---+---+---+---+ +---+ + | | | | | | | | | | +---+---+ +---+ +---+ +---+---+---+ + +---+ + +---+ +---+---+ + | | | | | | | | | | | | + + + + + + +---+ +---+---+ +---+ + + +---+ + +---+ + | | | | | | | | | | | | | | | | + + +---+ +---+ + +---+ + +---+---+---+ + + +---+---+ +---+ | | | | | | | | | +---+---+---+---+ +---+ + +---+ + + +---+ + + +---+ + + + | | | | | | | | | + + +---+ + +---+---+---+---+---+---+---+ + +---+ + +---+ +---+ | | | | | | | | | | | | | + + +---+---+ + +---+---+ + + + + +---+---+ +---+---+---+---+ | | | | | | | | | | | | +---+---+ +---+---+---+ +---+ +---+---+ + + +---+ + + + + + | | | | | | | | | | | | + +---+ + + + +---+ +---+---+---+---+ + + +---+ +---+---+ + | | | | | | | | | | | | | + +---+---+---+ + + +---+ +---+---+ +---+---+ +---+---+ +---+ + | | | | | | | | | | | +---+ + + + +---+---+ + +---+ +---+ + +---+ + +---+ + + | | | | | | | | | | | | | +---+ + +---+---+ +---+ + +---+ + +---+---+---+ + + +---+---+ | | | | | | | | | + +---+ + +---+---+ +---+ +---+---+ + + +---+ + +---+ + + | | | | | | | | | | | | | | | | +---+---+ +---+ + + + + + + +---+ +---+ + + + +---+---+ | | | | | | | | | | | +---+ +---+ +---+---+---+ +---+---+ + + + + +---+---+ +---+ + | | | | | | | | | | | + + +---+---+ +---+ +---+---+---+ + +---+---+---+ + +---+---+ + | | | | | | | | | | | | | + +---+ + + + +---+---+ +---+ + + +---+---+ + + +---+ + | | | | | | | | | | | | | + +---+---+ +---+---+ + + +---+---+---+ + + + + + + + + | | | | | | | | | | | + +---+ +---+---+ +---+---+---+---+ + +---+---+ +---+---+ + + + | | | | | | | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ ```