Crate leemaze

Source

Structs§

AllowedMoves2D
Lee Algorithm in rust provides one of the shortest paths through a maze.
AllowedMoves3D
3d Connection rules - provide a vector of (i32,i32,i32) tuples that describe how a player can move in three (x, y, z) dimensions through the 3d maze.
AllowedMoves4D
Ah! The classic changing minotaur’s maze, also known a commute across three lanes of multi-speed traffic to reach your exit coming up in one mile. 4d connection rules - provide a vector of tuples that describe allowed maze moves in (w,x,y,z) dimensions.
AllowedMoves5D
The 5D maze - If you’ve ever planned a new morning commute based on prior commutes you are at least passingly familiar with a 5d space time probability maze. 5d connection rules - provide a vector of tuples that describe how you can directionally move in the 5 dimensional space with this structure.

Functions§

boolify_2d_maze
Boolify turns a generic 2d Vec<Vec> into a 2d Vec<Vec>, just provide a value for open roads blocks.
boolify_3d_maze
Boolify turns a generic 3d Vec<Vec<Vec>> data into a Vec<Vec<Vec>>, just provide a value for open road blocks.
boolify_4d_maze
Boolify turns a generic 4d Vec<Vec<Vec<Vec>>> data into a Vec<Vec<Vec<Vec>>>, just provide a value for open road blocks.
boolify_5d_maze
Boolify turns a generic 5d Vec<Vec<Vec<Vec<Vec>>>> into a Vec<Vec<Vec<Vec<Vec>>>>, just provide a value for open road blocks.
maze_directions2d
maze_directions2d - feed it a maze Vec<Vec>, x y axis movement rules (like nw, ne, south), entrance and exit coordinates and it should return Some(one of the very fastest paths through the maze), None() for no path, and a empty vec for a entrance and exit that are the same. Decode the steps taken on the path with the allowed move list. (If your move list is vec!(north, south, east, west, upside_down), a path of 0, 0, 2, 4 would be ’north, north, east, upside down“)
maze_directions3d
maze_directions3d - feed it a maze Vec<Vec<Vec>>, x y z axis movement rules (like over under around and through), entrance and exit coordinates and it should return Some(one of the very fastest paths through the maze), None for no path, or a empty path vec for a entrance and exit that are the same. Decode the steps taken on the path with the allowed move list. (If your move list is vec!(over, under, around, through), a path of 0, 0, 3 would be ’over over through“)
maze_directions4d
maze_directions4d - feed it a maze Vec<Vec<Vec<Vec>>>, w x y z axis movement rules (like (0,0,1,1) , (0,0,1,-1) for northeast and northwest), entrance and exit coordinates and it should return Some(one of the very fastest paths through the maze), None for no path found, and a empty path vec for a entrance and exit that are the same. Decode the steps taken on the path with the allowed move list. (If your move list was vec!(north, south, east, west, night, day, up, down), a path of 0, 0, 2, 4, 7 would be ’north, north, east, night, down“)
maze_directions5d
mazedirections_5d - feed it a maze Vec<Vec<Vec<Vec<Vec>>>>, v w x y z axis movement rules (like (0,0,0,0,-1) for “upside down?”), entrance and exit coordinates and it should return Some(one of the very fastest paths through the maze), None() for no path found, and Some(empty vec) for a entrance and exit that are the same. Decode the steps taken on the path with the allowed move list. If the moves list was vec!(north, south, east, west, night, day, up, down, action_lever), a path of 0, 2, 4, 8 would be ’north, east, nighttime, action_lever“