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 - Ellers algorithm implementation
- growing_
tree - Growing tree implementation
- prelude
- Common traits and members
- prims_
algorithm - Prim’s algorithm implementation
- recursive_
backtracking - Recursive-Backtracking algorithm implementation