• 欢迎 游客 来到 CBerGit 我的世界命令托管与研发交流站。 发布您的指令作品、指令思路。
  • 我们正在 招募运维人员 了解详情

算法思路 二值图随机地形

适用版本
BE
版权类型
转载
CB(命令方块)数量
20
随机地形,受限于MC记分板的功能限制,采用柏林噪声,值噪声算法工程量巨大,且不易理解。若不要求地形完全自然,可以尝试二值图算法。

1673757098542.png

效果图



使用记分板提供的players类中的random方法

,可以随机指定对象的某记分板分数。利用此点,

创建一个rand记分板,覆盖盔甲架,随机每个盔甲

架的rand分数(0~1),此时,会发现0,1的分布极

不规律,而我们至少需要让地形满足连续性以及呈

块状。在此引用两条规则:

1:如果1分的盔甲架九宫格范围内有4个及以

上的0分盔甲架,使这个盔甲架变为0分

2:如果0分的盔甲架九宫格范围内有5个及以

上的0分盔甲架,使这个盔甲架变为1分

重复执行以上规则4~5次,得到如下效果:

1673757148413.png

对于零散的1分数盔甲架,可以在以上规则结束后使用此规则:

如果1分的盔甲架九宫格范围内有8个及以

上的0分盔甲架,使这个盔甲架变为0分

执行1~2次,可以处理大部分零散方块。

以上操作执行完后,接下来便是提高地形,引用如下规则:

1:如果1分的盔甲架九宫格范围内有8个及以上的1分盔甲架,

使这个盔甲架的分数变为2

2:如果2分的盔甲架九宫格范围内有8个及以上的3分盔甲架,

使这个盔甲架的分数变为3

……

可以将8个改为更低,越低地形越崎岖。需要注意的是,此算法在地形平缓时瑕疵较多,可以加上一些限制(例如:统计3分及以下盔甲架的数量,多于指定量——重新生成,少于指定量——继续)

以上规则只执行一次,此时使每个1分及以上的盔甲架上移一格,并在脚下放置草方块,同时减一分



进行到这里,生成便基本完成了

/* 原创作者:
https://www.bilibili.com/video/BV1P...ck&vd_source=307e9b22adc4898928650f74912492b8
*/
 
  • Like
反馈: Roast Duck