我正在制作一个带有程序图的游戏,我想采用这种方式:
它易于实现,结果正是我所寻找的。 p>
我唯一坚持的部分是第3部分,当我不得不四处乱转并随意换水降落时,当水接触大量土地时,水更有可能变成土地。
我试过这样做:
if (rand() % 10 < 3 + countAdjacentTile(x, y, LAND))
countAdjacentTile函数只计算标记为使用x和y坐标指定的图块周围的第三个参数的图块数。
因此,如果周围没有土地,水砖仍然有可能变成地砖,如果周围有土地,则有机会上层。
但它给了我这个:
虽然它在我之前给出的链接上给出了这个:
我想拥有同样的分支机构。你知道这个算法的名字吗?我读过这个: Exponential Distribution但那对我来说并不是很健谈......
感谢您的阅读。
答案 0 :(得分:1)
countAdjacentTile()如何工作?它是否计算对角线上的瓷砖,或只是4个邻居?如果算上对角线,请尝试不要这样做。还要尝试调整常量 - 即10和3,如果没有此代码,很难说哪些值会好,只需检查一些组合并选择最佳结果。
答案 1 :(得分:0)
您可能想要编写一个函数,根据到岛屿中心的距离给出密度。然后使用此密度值来加权定义元素是陆地还是水的阈值。