Внешняя обработка для процедурной генерации подземелий, лабиринтов, пещер и островов (управляемые и обычные формы)
Данная обработка позволяет генерировать подземелья, лабиринты, пещеры и даже острова, которые затем можно распечатать и использовать… ну, например, в настольных играх.
Настройки генерации:
- Зерно: возможность указывать определенное «зерно» для генератора случайных чисел.
- Вид генерируемой карты: подземелье (лабиринт), пещера или остров.
- Заполнять карту: заполнять оставшееся пространство карты стенами или водой (для острова).
Подземелье:
- Неправильные комнаты: если этот флаг не установлен все комнаты будут прямоугольными.
- Максимум комнат: лимитируется количество создаваемых комнат. При установке количества в «0» будет создан только лабиринт.
- Расстояние: минимальное расстояние между создаваемыми комнатами.
- Дополнительные двери: по умолчанию создается «идеальное» подземелье, т.е., каждая область (комната) имеет одно и только одно соединение (дверь) с другой областью. Таким образом, из любой комнаты в любую другую можно попасть одним единственным путем. Добавление дополнительных дверей может облегчить прохождение лабиринта.
- Извилистость: чем меньше это значение, тем более длинными будут рукава коридоров.
- Тупики: процент тупиков, которые останутся после генерации уровня. Может использоваться для создания тупиковых коридоров в подземельях.
- Сквозные проходы: то же самое, что и п.4, только для стенок лабиринта.
Пещера:
- Минимальный размер: будут удалены участки пещеры площадью меньше, чем указанное значение.
- Разреженность: чем выше это значение, тем более просторной будет пещера.
Остров:
- Детализация: чем выше значение, тем более детальней получается остров, но и тем дольшебудет длиться генерация.
- Шероховатость: влияние эррозии.
- Деформация: влияет на форму острова.
- Вода: уровень моря. Чем выше значение, тем больше участков острова будет скрыто под водой.
Новое в версии 1.1:
- Добавлено «зерно» для генератора случайных чисел.
- Возможность генерировать комнаты неправильной формы для подземелий.
- Возможность указывать минимальное расстояние между комнатами.
- Добавлена генерация пещер.
- Добавлена генерация островов.
- Изменено масштабирование.
Хотя бы двери входа и выхода нарисовал, что была цель какаета
(1) Sanya2049, Согласен, не хватает входа-выхода, когда то решал задачу поиска пути в таком лабирине ))
(1) Sanya2049, (2) MherArsh, не вижу смысла. Входы и выходы каждый определяет самостоятельно — кому то они нужны в комнатах, другим — в стенках или тупиках лабиринта.
Жаль, что код закрыт:(
(4) Lok`Tar, извините, но я закрываю свой код, если планирую использовать обработку в дальнейшем. Подробное описание этого алгоритма с картинками можете посмотретьздесь . Там же есть ссылки и на исходники. Правда, они на языке dart, но разобраться можно.
(4) открытый код )
http://infostart.ru/public/75987/
Игра: Лабиринт для 1С (теперь и для 8.0-8.2) 24.09.10 16:53