Crate maze_generator
source · [−]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