maze

Trait MazePrinter

Source
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§

Source

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 target
  • start - Start point
  • end - End point
  • path - 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
       );
   }
}

Implementations on Foreign Types§

Source§

impl MazePrinter for Maze

Source§

fn print( &self, print_target: &mut dyn LinePrinter, path: MazePath, ) -> Result<(), Error>

Implementors§