pub trait MazePrinter {
// Required method
fn print(
&self,
print_target: &mut dyn LinePrinter,
path: MazePath,
) -> Result<(), Error>;
}Expand description
Represents a maze printer interface
Required Methods§
Sourcefn print(
&self,
print_target: &mut dyn LinePrinter,
path: MazePath,
) -> Result<(), Error>
fn print( &self, print_target: &mut dyn LinePrinter, path: MazePath, ) -> Result<(), Error>
Print a maze instance to the given print target with the given start point, end point and solution path
§Arguments
print_target- Print targetstart- Start pointend- End pointpath- Solution path
§Returns
Nothing
§Examples
use data_model::Maze;
use maze::{MazePrinter, MazeSolver};
use utils::StdoutLinePrinter;
let grid: Vec<Vec<char>> = vec![
vec!['S', 'W', ' ', ' ', 'W'],
vec![' ', 'W', ' ', 'W', ' '],
vec![' ', ' ', ' ', 'W', 'F'],
vec!['W', ' ', 'W', ' ', ' '],
vec![' ', ' ', ' ', 'W', ' '],
vec!['W', 'W', ' ', ' ', ' '],
vec!['W', 'W', ' ', 'W', ' '],
];
let maze = Maze::from_vec(grid);
let result = maze.solve();
match result {
Ok(solution) => {
println!("Successfully solved maze:");
let mut print_target = StdoutLinePrinter::new();
maze.print(&mut print_target, solution.path);
}
Err(error) => {
panic!(
"failed to solve maze => {}",
error
);
}
}