gpt4 book ai didi

c++ - 给定两种图 block 类型,如何随机生成网格样式的岛屿 map ?

转载 作者:搜寻专家 更新时间:2023-10-31 00:40:08 26 4
gpt4 key购买 nike

我需要编写一种算法来为 100 x 100 网格中的每个正方形分配一种瓷砖类型(一种用于水,一种用于陆地),我希望它生成一个“岛”。有些东西是随机的,但所有的陆地都放在一起,所有的水都在边界上。有任何想法吗?

我听说过“柏林噪声”,但我不知道如何实现它才能得到我想要的结果。我也觉得我的案例对于如此复杂的算法来说可能太基础了。

谢谢!

最佳答案

我玩的一个 roguelike,叫做 Brogue,使用元胞自动机规则生成湖泊和洞穴,并且可以应用这样的规则来制作岛屿,因为它们以令人满意的 Blob 方式生成,看起来凝固但不过分圆形/广场。

在这里阅读:http://brogue.wikia.com/wiki/Level_Generation#Lakes

示例:

使用与关卡一样大的缓冲区,并使用 55% 的存活元素和 45% 的死亡元素进行播种。 5 次迭代由规则 B5678/S45678 组成:

如果我死了而有 5-8 个活着的邻居,我就会活着。

如果我还活着并且有 4-8 个活着的邻居,我就会活着,否则我就死了。

在此之后,水平/垂直连接的事件元素的每个“ Blob ”都会被计算在内,并保留小于 lakeMaxWidth 和 lakeMaxHeight 的最大 Blob 。如果没有大于 4x4 或小于 4x4 的 blob,元胞自动机将重新开始。

关于c++ - 给定两种图 block 类型,如何随机生成网格样式的岛屿 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15213619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com