/Maze

Primary LanguageJava

Лабиринт

Описание:

Требуется разработать и реализовать на языке Java алгоритм генерации двухмерного лабиринта с одним входом и одним выходом. В качестве входных и выходных данных используются файлы, пути к котором указываются в качестве аргументов при запуске консольного приложения. Первый аргумент это путь до файла в котором указанный данные для генерации лабиринта, в качестве второго аргумента используется путь до файла в котором должен быть создан лабиринт.

В входном файле содержится строка содержащая поля разделенные символом “;”. В файле должны быть следующие поля: длина (абсцисса) лабиринта (целочисленное значение) ширина (ордината) лабиринта (целочисленное значение) координата по абсциссе входа в лабиринт (целочисленное значение) координата по ординате входа в лабиринт (целочисленное значение) координата по абсциссе выхода из лабиринта (целочисленное значение) координата по ординате выхода из лабиринта (целочисленное значение)

В выходном файле записывается матрица созданного лабиринта (одна строчка - одна строка матрицы по абсциссе). Матрица состоит из набора двух символов: “*” и “-”, где звездочка обозначает стену, а черточка свободное пространство.

Условия:

лабиринт должен иметь только один возможный путь от входа до выхода в лабиринте должно быть как можно больше “альтернативных путей которые будут уводить в тупик” (тут главное не переборщить) лабиринт по периметру должен иметь сплошную стену, не считая точки входа и выхода точки входа и выхода не должны располагаться на углах лабиринта точка начала координат находится в верхнем левом углу нумерация ячеек начинается с 0

Пример:

Пример входного файла:

5;6;1;0;2;5

Пример выходного файла:

-** -** --- - - -

Дополнительные задания:

Требуется разработать и реализовать на языке Java алгоритм генерации трехмерного лабиринта с одним входом и одним выходом. В качестве входных и выходных данных используются файлы, пути к котором указываются в качестве аргументов при запуске консольного приложения. Первый аргумент это пусть до файла в котором указанный данные для генерации лабиринта, в качестве второго аргумента используется пусть до файла в котором должен быть создан лабиринт.

В входном файле содержится строчка содержащая поля разделенные символом “;”. В файле должны быть следующие поля: длина (абсцисса) лабиринта (целочисленное значение) ширина (ордината) лабиринта (целочисленное значение) высота (аппликата) лабиринта (целочисленное значение) координата по абсциссе входа в лабиринт (целочисленное значение) координата по ординате входа в лабиринт (целочисленное значение) координата по аппликате входа в лабиринт (целочисленное значение) координата по абсциссе выхода из лабиринта (целочисленное значение) координата по ординате выхода из лабиринта (целочисленное значение) координата по аппликате выхода из лабиринта (целочисленное значение)

В выходном файле записываются наборы матриц созданного лабиринта (одна строчка - одна строка матрицы по абсциссе). Первая матрица для аппликаты равной 0, вторая для аппликаты раной 1 и так далее. Матрица состоит из набора двух символов: “*” и “-”, где звездочка обозначает стену, а черточка свободное пространство.

Условия те что и в варианте с двухмерной матрицей.

Пример входного файла:

5;6;3;1;1;0;2;3;2

Пример выходного файла:


-** --- - -




**- -






-