Как использовать Random Walk для создания карты подземелья?
Итак, я делаю 2D-сканер подземелья и хочу рандомизировать карту для него. Прямо сейчас это выглядит так, как будто я собираюсь использовать алгоритм Random Walk для пути в сочетании с Perlin Noise для различных сред подземного мира (в настоящее время только 1, так как я использую свой собственный дерьмовый набор плиток, состоящий только из 1 ладьи изображение и 1 изображение травы, но что угодно:D)
Итак, чтобы выяснить, как работают случайные прогулки, похоже, что я должен сделать что-то вроде этого:
* создать двумерный массив размером после карты.
* выберите случайное начальное положение и конечное положение (я решил разместить их по разные стороны карты, случайным образом распределенные по ее стороне.
* следуйте этим шагам, пока не достигнете своей финишной точки:
* Выберите направление для "случайной ходьбы" (только вверх, вниз, влево, вправо, потому что в противном случае у меня останутся диагональные проходы, через которые игрок не сможет пройти)
* "пройти" в этом направлении для случайного количества шагов (сначала я рандомизирую количество шагов, затем иду один за другим для проверки границ позже, а не просто рисую линию).
* Каждый раз, когда вы "ходите" по плитке, превращайте эту плитку в 1 с первоначально 0.
* повторяйте вышеуказанные шаги, пока не достигнете своей финишной точки.
Это оставляет мне слишком много открытого грунта и слишком много закрытого грунта. Что-то, что я ищу, это путь, покрытый комнатами, вроде, но я хочу контролировать, насколько большими становятся "комнаты". Я не хочу, чтобы "комнаты" становились слишком большими, какими некоторые становятся. Поэтому я хочу чувствовать себя в замкнутом пространстве, но также хочу использовать как можно большую часть сетки карты.
Случайная прогулка не подходит для этого? Я думал о том, чтобы каждый шаг имел определенную ширину, возможно, это могло бы сработать.
Или, может быть, я просто неправильно это реализую! Я не гениальный математик, к сожалению;P