maze-rs

Maze for Programmers (Rust)

Status

Build Status

Prerequisites

Usage

``` $ ./target/debug/maze -h Maze Generator 0.1.2 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] -c, --cell-size Size of Cell [default: 80] --color-cell Color of Cell [default: #fff] --color-wall Color of Wall [default: #000] -f, --format Output format to use [default: ascii] [values: ascii, json, png] -y, --height Height of Maze [default: 5] -p, --rest-port REST Port [default: 5000] -w, --wall-size Size of Wall [default: 20] -x, --width Width of Maze [default: 5] ```

Generator Algoritms

Output Formats

Benchmark

Low-Level Benchmark

``` $ cd dev/maze-rs/ tomaskorcak@kx-mac ~/dev/maze-rs$ cargo bench Finished release [optimized] target(s) in 0.0 secs Running target/release/deps/maze-0b23e703e6e9e01c

running 6 tests test generator::aldousbroder::tests::benchgenerate100x100 ... bench: 61,610,364 ns/iter (+/- 24,858,439) test generator::aldousbroder::tests::benchgenerate10x10 ... bench: 214,587 ns/iter (+/- 59,722) test generator::binary::tests::benchgenerate100x100 ... bench: 5,123,808 ns/iter (+/- 976,614) test generator::binary::tests::benchgenerate10x10 ... bench: 38,307 ns/iter (+/- 10,100) test generator::sidewinder::tests::benchgenerate100x100 ... bench: 5,063,132 ns/iter (+/- 1,187,545) test generator::sidewinder::tests::benchgenerate10x10 ... bench: 38,009 ns/iter (+/- 9,281)

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

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