Как сгенерить карту, тобто землю, воду, леса, поля и т.д.

From
Boris Rudakov (2:5054/9.4)
To
Sergey Andrianov (2:5054/9)
Date
2000-02-23T10:22:01Z
Area
RU.ALGORITHMS
Hello Sergey!

22 Feb 00 09:11, Sergey Andrianov wrote to Andrey Trubitsyn:

 SA>                 Здравствyй, yважаемый Andrey!

 SA>  Недавно, Пон Фев 21 2000 в 20:59, некто Andrey Trubitsyn
 SA>  писал All по поводy Как сгенерить карту, тобто землю, воду, леса,
 SA> поля и т.д. :

 AT>>          Алгоритм подскажите, может есть какой !

 SA>    Насколько я понимаю, карта - это двумерный массив, ячейки которого
 SA> могут принимать одно из заданного набора значений (земля, вода, леса,
 SA> поля...).
 SA>    Сначала следует задать процентное соотношение между землей,
 SA> водой...
 SA>    Затем при помощи датчика случайных чисел вычислить для каждой точки
 SA> соответствующий ей тип ландшафта.
Слишком грубый алгоритм.

 SA> В общем, сгенерить хорошую карту (для стратегичекой игры,
 SA> насколько я понимаю) - дело непростое и требующее серьезной работы, в
 SA> том числе головой. Простого алгоритма задесь IMHO не существует.
Я бы рекоммендовал использовать шумовые функции, типа Perlin Noise (самая известная и распространенная). Оригинальную реализацию можно взять прямо у автора на http://mrl.nyu.edu/perlin

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

Кстати, за счет того что шумовые функции - алгоритмические, они имеют бесконечную разрешающую способность, это лучше чем просто дискретные характеристики ячеек карты.

 SA>                                     Не прощаюсь
 SA>                                             Sergey

Boris Rudakov,               Да-а-а... не пустят на банкет,
BBR                          когда в кармане баксов нет !

--- Be happy: BBR is looking at you !
 * Origin: АлкАголь малыми дозами безвреден в любых количествах (2:5054/9.4)