猫史档案馆


随机地形2代

用户:无极玄天无极玄天查看:13 回复:10 评论:13 创建时间:2022-09-10T16:28:25


展示:

center_image

代码:

let s = voxels.setVoxel;
let g = voxels.getVoxel;
async function 地皮(x, y, z) {
  for (let i = 0; i <= 8; i++) {
    for (let p = 0; p < +8; p++) {
      s(x - 4 + i, y, z - 4 + p, "dirt");
    }
  }
}

async function 随机地形(起始高度, 凹凸度) {
  for (let y = 0; y <= 128; y++) {
    for (let x = 0; x <= 256; x++) {
      for (let z = 0; z <= 256; z++) {
        if (g(x, y, z) != "0") {
          s(x, y, z, "air");
        }
      }
    }
    await sleep(5);
  }
  for (let v = 0; v <= 8; v++) {
    地皮(
      Math.floor(Math.random() * 256),
      起始高度 + 1,
      Math.floor(Math.random() * 256)
    );
  }

  for (let x = 0; x <= 256; x++) {
    for (let z = 0; z <= 256; z++) {
      s(x, 起始高度, z, "dirt");
    }
    await sleep(5);
  }
  let poop = 100;
  for (let y = 起始高度; y <= 凹凸度; y++) {
    poop -= 100 / (凹凸度 - 起始高度);
    for (let x = 0; x <= 256; x++) {
      for (let z = 0; z <= 256; z++) {
        if (Math.random() * 100 <= poop) {
          if (g(x + 1, y, z) != "0" || g(x - 1, y, z) != "0") {
            s(x, y, z, "dirt");
          } else if (g(x, y, z + 1) != "0" || g(x, y, z - 1) != "0") {
            s(x, y, z, "dirt");
          } else if (
            g(x + 1, y, z + 1) != "0" ||
            g(x + 1, y, z - 1) != "0" ||
            g(x - 1, y, z + 1) != "0" ||
            g(x - 1, y, z - 1) != "0"
          ) {
            s(x, y, z, "dirt");
          } else if (Math.random() * 200 <= poop && g(x, y - 1, z) != "0") {
            s(x, y, z, "dirt");
          }
        }
      }
    }
    await sleep(10);
  }
  for (let y = 起始高度; y <= 凹凸度; y++) {
    for (let x = 0; x <= 256; x++) {
      for (let z = 0; z <= 256; z++) {
        if (g(x, y, z) != "0") {
          if (
            g(x, y + 2, z) != "0" ||
            g(x, y + 3, z) != "0" ||
            g(x, y + 4, z) != "0" ||
            g(x, y + 5, z) != "0"
          ) {
            s(x, y + 1, z, "dirt");
          }
        }
        if (g(x, y + 1, z) == "0" && g(x, y, z) != "0") {
          s(x, y, z, "grass");
        }
      }
    }
  }
}
try {
  随机地形(起始高度, 凹凸度);
} catch (e) {
  随机地形(8, 80);
}

注意事项:

1.使用时需在该代码前加入一下2行代码:
let 起始高度=number(这个number里面填任意正整数,为该地形的最低y坐标,默认为8)

let 凹凸度=number(这个number里面填任意正整数,为该地形的凹凸程度,越大凹凸程度越大,默认为80)

2.使用时可能会卡顿,正常现象,可以试着退出重进

3.此代码可以输入控制台!

作者:无极玄天


回复

上一页1 页 / 共 1下一页
无极玄天无极玄天

点赞0


评论


ฅ智慧编程猫ฅ----(和平工作室室长)ฅ智慧编程猫ฅ----(和平工作室室长)

喵d

点赞0


评论


145a145a

nb

点赞0


评论


囧仙_official囧仙_official

所以这就是你用中文变量的理由?

点赞0


评论


屑怪盗屑怪盗

愚公有有可以炸的了

点赞0


评论


1086爱编程1086爱编程

try的函数不用加await?那你这有啥用呢

点赞0


评论


萌新大佬萌新大佬

啊啊啊啊啊你这代码可读性0啊啊啊啊怎么会有人用中文变量啊啊啊啊怎么想的啊啊啊啊啊imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%B4%A7%E5%BC%A0.gif"alt="emotion_编程猫_紧张"

点赞0


评论


YDS尹子YDS尹子

可以在这个基础上改进 https://shequ.codemao.cn/community/368253

点赞0


评论


来自远方的panda来自远方的panda

可以啊emotion_doge

点赞0


评论


Programming轩Programming轩

???  地皮怎么没了?

点赞0


评论