0

我正在用程序地图制作游戏,我想应用这种方式:

程序岛生成

它很容易实现,结果就是我想要的。

我唯一坚持的部分是第 3 部分,当我必须绕圈并随机将水变为陆地时,当水接触到大量陆地时,水变为陆地的机会更高。

我试过这样做:

if (rand() % 10 < 3 + countAdjacentTile(x, y, LAND))

countAdjacentTile 函数只计算用 x 和 y 坐标指定的瓦片周围标记为第三个参数的瓦片数。

因此,如果周围没有土地,水瓦仍然有机会变成土地瓦,如果周围有土地,机会就更高。

但它给了我这个:

在此处输入图像描述

虽然它在我之前给出的链接上给出了这个:

在此处输入图像描述

我想拥有相同类型的分支。你知道这个算法的名称吗?我读过这个: 指数分布但这对我来说并不是很健谈......

感谢您到目前为止的阅读。

4

2 回答 2

1

countAdjacentTile() 是如何工作的?它计算对角线上的瓷砖,还是只计算 4 个邻居?如果您计算对角线,请不要这样做。还可以尝试调整常量 - 10 和 3,如果没有此代码,很难说哪些值会好,只需检查一些组合并选择最佳结果。

于 2013-12-19T11:02:22.977 回答
0

您可能想编写一个函数,根据到岛中心的距离给出密度。然后使用此密度值对定义元素是土地还是水的阈值进行加权。

于 2013-12-19T09:33:12.887 回答