public PathFindAlgo(IMazeSpecialElementsSeeker _pathFindAlgoBoundary, List <IMazeElement> _pathFromStartToEnd, IPathFinder _pathFinder, IMazeElementsPathFindParametersRestarter _mazeElementsPathFindParametersRestarter) { pathFindAlgoBoundary = _pathFindAlgoBoundary; pathFromStartToEnd = _pathFromStartToEnd; pathFinder = _pathFinder; mazeElementsPathFindParametersRestarter = _mazeElementsPathFindParametersRestarter; }
public MazeSaveTextCreator(IPlaneBuilder _planeBuilder, IPlaneElementsBounds _elementsBounds, List <string> _saveText, IMazeSpecialElementsSeeker _saveSystemBoundary) { planeBuilder = _planeBuilder; elementsBounds = _elementsBounds; saveText = _saveText; saveSystemBoundary = _saveSystemBoundary; }
public ISaveSystem CreateSaveSystemForMazeSaving( string defaultSaveFolderPath, PlaneBoundry planeBuilder, string mazeSaveFolderPath, IMazeSpecialElementsSeeker mazeSpecialElementsSeeker) { ISaveSystem saveSystem; saveSystem = new SaveSystem( new FolderPath( mazeSaveFolderPath, defaultSaveFolderPath, new PathValidator()), new MazeSaveTextCreator( planeBuilder, planeBuilder, new List <string>(), mazeSpecialElementsSeeker), new List <string>(), new StreamWriter(mazeSaveFolderPath, false)); return(saveSystem); }
public virtual IPathFindAlgo CreatePathFindAlgo( EPathFindAlgorithms ePathFindAlgorithm, IMazeSpecialElementsSeeker pathFindAlgoBoundary, List <IMazeElement> pathFromStartToEnd, IPlaneBuilder planeBuilder, List <IMazeElement> unexploredMazeElementsList, List <IMazeElement> openList, List <IMazeElement> closeList, IPathFindProcessMetric pathFindProcessMetric) { PathFindAlgo pathFindAlgo = null; switch (ePathFindAlgorithm) { case EPathFindAlgorithms.DijkstraAlgorithm: pathFindAlgo = new PathFindAlgo( pathFindAlgoBoundary, pathFromStartToEnd, new DijkstraPathFinder( planeBuilder, new UnexploredMazeElements( planeBuilder, unexploredMazeElementsList), pathFindAlgoBoundary.FindStartPlaceForPathFinding(), pathFindAlgoBoundary.FindDestinationPlaceForPathFinding(), pathFindProcessMetric), new MazeRestarter( planeBuilder)); break; case EPathFindAlgorithms.EuclideanAStar: pathFindAlgo = new PathFindAlgo( pathFindAlgoBoundary, pathFromStartToEnd, new AStarPathFinder( pathFindAlgoBoundary.FindStartPlaceForPathFinding(), pathFindAlgoBoundary.FindDestinationPlaceForPathFinding(), new OpenCloseListController( openList, closeList), new NeighboursPathFindParametersProcessor( planeBuilder, pathFindAlgoBoundary.FindDestinationPlaceForPathFinding(), new AStarEuclideanDistanceHeuristic()), pathFindProcessMetric), new MazeRestarter( planeBuilder)); break; case EPathFindAlgorithms.ManhattanAStar: pathFindAlgo = new PathFindAlgo( pathFindAlgoBoundary, pathFromStartToEnd, new AStarPathFinder( pathFindAlgoBoundary.FindStartPlaceForPathFinding(), pathFindAlgoBoundary.FindDestinationPlaceForPathFinding(), new OpenCloseListController( openList, closeList), new NeighboursPathFindParametersProcessor( planeBuilder, pathFindAlgoBoundary.FindDestinationPlaceForPathFinding(), new AStarManhattanDistanceHeuristic()), pathFindProcessMetric), new MazeRestarter( planeBuilder)); break; } return(pathFindAlgo); }