Expand description

This is a collection of different maze generation algorithms.

The project’s main goal is to provide an easy-to-use API to different algorithms with different characteristics.

Examples

// Generate a 3 by 3 maze using a provided seed and the recursive-backtracking algorithm
use maze_generator::prelude::*;
use maze_generator::recursive_backtracking::RbGenerator;

let mut generator = RbGenerator::new(Some([42; 32]));
let maze = generator.generate(3, 3).unwrap();

assert_eq!(format!("{:?}", maze),
"·-·-·-·
|S|   |
· ·-· ·
|     |
·-·-· ·
|G    |
·-·-·-·
");
// Retrieve information about a specific cell from the maze
use maze_generator::prelude::*;
use maze_generator::recursive_backtracking::RbGenerator;

let mut generator = RbGenerator::new(Some([42; 32]));
let maze = generator.generate(3, 3).unwrap();

assert_eq!(format!("{:?}", maze.get_field(&maze.start).unwrap()),
           "Field { north: \"wall\", east: \"wall\", south: \"passage\", west: \"wall\" }");

Modules

Ellers algorithm implementation

Growing tree implementation

Common traits and members

Prim’s algorithm implementation

Recursive-Backtracking algorithm implementation