Так же в последнем номере журнала fps есть отличное объяснение генерации на русском. А вообще тут фишка в том, чтоб самому придумать алгоритм. Это интересно и не настолько архи-сложно.
Добавлено (16.10.2013, 23:56) --------------------------------------------- http://en.wikipedia.org/wiki/Maze_generation_algorithm - тут именно генерация лабиринтов. Внизу статьи есть ссылки на разные ресурсы. Посмотрите там.
вот: http://www.astrolog.org/labyrnth/algrithm.htm Участвовал в разработке Order of War (C++ UI & логика) и WoT (Python портал worldoftanks.ru почти всё :-) )
kvestpro, один из способов: Заполняем 2D сетку-массив ячейками, между ними - стенки, помечаем ячейки, как незанятые. Пишем такую процедуру: Параметр - координаты текущей ячейки (индексы в 2D массиве). Помечаем текущую ячейку занятой. Функция в случайном порядке проверяет всех четырёх соседей. Если сосед не занят и не за краем массива - убираем стенку в его направлении и рекурсивно вызываем эту же функцию, передавая в неё адрес соседа. ВСЁ! Вызвав эту функцию всего 1 раз для одной любой ячейки, мы получаем готовый лабиринт. Готовый пример на VB6 можно посмотреть тут: Лабиринт Выглядит это так:
У этого лабиринта есть одно замечательное свойство - из каждой ячейки в каждую гарантированно существует путь, и этот путь всегда только один.
Сообщение отредактировал -Mikle- - Четверг, 17 Октября 2013, 15:17