Я сделать игру с процедурной картой, и я хотел бы применить этот способ делать:псевдослучайный для процедурной генерации
Это легко осуществить, и результаты, что я Я ищу.
Единственная часть, за которую я застрял, - это часть 3, когда мне приходится крутиться в кругах и беспорядочно менять воду на землю, с более высоким шансом перебросить воду в землю, когда она касается большого количества земли ,
Я пытался сделать так:
if (rand() % 10 < 3 + countAdjacentTile(x, y, LAND))
функция countAdjacentTile просто подсчитывает количество плиток, помеченных в качестве третьего параметра вокруг плитки, указанного с координатами х и у.
Итак, есть еще шанс, что водная черепица превратится в плитку земли, если вокруг нее нет земли, и шансы выше, если вокруг есть земля.
Но это дает мне это:
в то время как она дает это на ссылке, которую я дал ранее:
Я хотел бы иметь такие же ветви , Вы знаете имя алгоритма для этого? Я читал это: Exponential Distribution Но для меня это не очень разговорчив ...
Спасибо за чтение.
Вы дважды проверили, что функция 'countAdjacentTile' возвращает то, что вы ожидаете? – benjymous
Да, у меня хорошие значения возврата. – tho
Если вы используете компилятор C++ 11, вы можете использовать один из более новых случайных генераторов из заголовка 'random'. «Ранд» не самый лучший, и смешивание его с модом имеет тенденцию ухудшать его. –