The program implements the generation of a random maze and the algorithm for finding the exit from the maze.
Даны робот, задаваемый интерфейсом IRobot, и лабиринт, представляющий из себя набор клеток (Cell), каждая из которых является либо пустой, либо стеной, либо выходом. Размеры и форма лабиринта заранее неизвестны.
Задача: написать реализацию метода поиска выхода из лабиринта. Метод должен либо привести робота в клетку с выходом, либо выбросить исключение, если выход недостижим.
- SourceData.cs - содержит исходные условия задания и реализация функции поиска пути в лабиринте.
- IMaze.cs - опредение интерфейса, который определяет сигнатуру необходимых методов-членов для любого лабиринта.
- IPrint.cs - определение интерфейса, который определяет сигнатуру методов-членов для вывода любого лабиринта.
- Maze.cs - определяет абстрактный класс Maze, реализующий базовое поведение для интерфейсов IMaze и IPrint, а также определяющий общие члены для лабиринтов.
- MazeDefault.cs - содержит определение класса, для генерации изначально заданного лабиринта унаследованного от Maze.
- MazeEuler.cs - содержит определение класса, который генерирует лабиринт по алгоритму Эйлера. Класс унаследован от Maze.
- Robot.cs - содержит определение класса робота, который реализует интерфейс IRobot.
- SimpleMazeFactory.cs - содержит реализацию простой фабрики лабиринтов.