private void FillMaze() { // Create a maze with fixed layout. mazeUserControl.Setup(5, 2, 3); // Draw the maze walls. mazeUserControl.MazePainter.PaintMaze(null); // Solve the maze. IMazeSolver solver = SolverFactory.CreateDefaultSolver(mazeUserControl.Maze, mazeUserControl.MazePainter); solver.Reset(); solver.Solve(); }
/// <summary> /// Returns a new MazeSolver of the given Type. /// </summary> /// <param name="solverType"></param> /// <param name="maze"></param> /// <returns></returns> private static IMazeSolver CreateSolver(Type solverType, Maze maze, IMazeDrawer mazeDrawer) { IMazeSolver result = (IMazeSolver)solverType.GetConstructor( new Type[2] { typeof(Maze), typeof(IMazeDrawer) }).Invoke( new object[2] { maze, mazeDrawer } ); result.Reset(); return(result); }