Как использовать Random Walk для создания карты подземелья?

Итак, я делаю 2D-сканер подземелья и хочу рандомизировать карту для него. Прямо сейчас это выглядит так, как будто я собираюсь использовать алгоритм Random Walk для пути в сочетании с Perlin Noise для различных сред подземного мира (в настоящее время только 1, так как я использую свой собственный дерьмовый набор плиток, состоящий только из 1 ладьи изображение и 1 изображение травы, но что угодно:D)

Итак, чтобы выяснить, как работают случайные прогулки, похоже, что я должен сделать что-то вроде этого:

* создать двумерный массив размером после карты.

* выберите случайное начальное положение и конечное положение (я решил разместить их по разные стороны карты, случайным образом распределенные по ее стороне.

* следуйте этим шагам, пока не достигнете своей финишной точки:

* Выберите направление для "случайной ходьбы" (только вверх, вниз, влево, вправо, потому что в противном случае у меня останутся диагональные проходы, через которые игрок не сможет пройти)

* "пройти" в этом направлении для случайного количества шагов (сначала я рандомизирую количество шагов, затем иду один за другим для проверки границ позже, а не просто рисую линию).

* Каждый раз, когда вы "ходите" по плитке, превращайте эту плитку в 1 с первоначально 0.

* повторяйте вышеуказанные шаги, пока не достигнете своей финишной точки.

Это оставляет мне слишком много открытого грунта и слишком много закрытого грунта. Что-то, что я ищу, это путь, покрытый комнатами, вроде, но я хочу контролировать, насколько большими становятся "комнаты". Я не хочу, чтобы "комнаты" становились слишком большими, какими некоторые становятся. Поэтому я хочу чувствовать себя в замкнутом пространстве, но также хочу использовать как можно большую часть сетки карты.

Случайная прогулка не подходит для этого? Я думал о том, чтобы каждый шаг имел определенную ширину, возможно, это могло бы сработать.

Или, может быть, я просто неправильно это реализую! Я не гениальный математик, к сожалению;P

0 ответов

Другие вопросы по тегам