猫史档案馆


斯这。。。

用户:limit_breakrlimit_breakr查看:40 回复:9 评论:40 创建时间:2023-01-04T17:20:56


我想在 y=100 高度上挖几(至少50个)个大小为 size 的正方形(深度y=1)坑

于是有了

console.clear();
var y = 100;
!async function(){
for (
    var a = 50 + Math.round(Math.random() * 50),
    b = 0,
    x = Math.round(Math.random() * 128),
    z = Math.round(Math.random() * 128),
    size = Math.round(Math.random() * 10);
    b < a + 1;
    b++
    ) {
    for (var x1 = -Math.round(size / 2); x1 <= size/2; x1++) {
        for (var z1 = -Math.round(size / 2); z1 <= size/2; z1++) {
            voxels.setVoxel(
                x + x1,
                y,
                z + z1,
                "air",
                0
                );
        }
    }
console.log(b);
}
}() 

执行了 50 + Math.round(Math.random() * 50) 次后发现:

居然只有一个?!center_image

求解

 

 

 

 

 

(满嘴代码())


回复

上一页1 页 / 共 1下一页
limit_breakrlimit_breakr

ddd()

点赞0


评论


limit_breakrlimit_breakr

ddd(我是真的急!!!

点赞0


评论


limit_breakrlimit_breakr

b++变成b+1直接

 

center_image

(累)

点赞0


评论


limit_breakrlimit_breakr

c喵ole.clear();
var y = 100;
for (
    var a = 50 + Math.round(Math.random() * 50),
    b = 0,
    x = Math.round(Math.random() * 128),
    z = Math.round(Math.random() * 128),
    size = Math.round(Math.random() * 10);
    b <= a;
    b + 1
) {
    !async function () {
        for (var x1 = -Math.round(size / 2); x1 <= size / 2; x1++) {
            for (var z1 = -Math.round(size / 2); z1 <= size / 2; z1++) {
                voxels.setVoxel(
                    x + x1,
                    y,
                    z + z1,
                    "air",
                    0
                );
            }
        }
    }();//啊啊啊我恨这括号(恼极了)
};
c喵ole.log("over");

点赞0


评论


limit_breakrlimit_breakr

救我()

box3.codemao.cn/e/95e3c145652144b41b32

点赞0


评论


limit_breakrlimit_breakr

center_image

(突然想起来for里第三个语句才是每次循环完再执行一次的,恼到不行)

点赞0


评论


DebugDynamoDebugDynamo

我不懂,但是我大为震撼()()

点赞0


评论


伴雪纷飞伴雪纷飞

想知道()

async前加个!是什么仪式吗()

点赞0


评论


limit_breakrlimit_breakr

 

*故事*
后来这个大大屑特
改了代码

    var dig = [], y = 100;
    !async function () {
        for (var deep = 0; deep < 51;) {
            var max = random(deep ^ 1.2);
            deep += 1 + random(5);
            for (var count = 0; count <= max; count++) {
                var x = random(128), z = random(128);
                dig.push([
                    x,
                    y - deep,
                    z,
                    random(800, 100),
                    random(80, 10),
                    random(180, -180),
                    random(180, -180),
                    random(180, -180)
                ]);
            };
        };
    }();
    console.log("over", dig.length, dig);

啊屑想在某几层生成几个 <dig>起点
于是有了如上
想从这些点(x=dig[point][1],y=dig[point][2],z=dig[point][3])
出发(以dx=dig[point][6],dy=...,dz=...)方向)掘进 dig[point][4]个坐标点,
粗细为dig[point][5]

但是不会3d()去找速建
找到了还没做
觉得Math.random()+Math.round()太麻烦
然后去翻“范围随机数 js”

得到

function random(max, min) {  
     return Math.floor(Math.random() * (max - min + 1)) + min;
}

因为min输入了0,输出了null
这个屑很不爽
于是试图改造
得出

function random(max, min) {  
if (!max && !min || typeof max != "number") { return (NaN) }
    else {
        if (min == null || typeof min != "number") {
            min = 0
        } else {
            min = Math.ceil(min);
            max = Math.floor(max);
            return Math.floor(Math.random() * (max - min + 1)) + min;
}

然后生成程序直接无结果啦
屑十分恼

点赞0


评论