用户:
limit_breakr查看:168 回复: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) 次后发现:
居然只有一个?!
求解
(满嘴代码())
limit_breakrddd(我是真的急!!!
点赞0
评论
快给回复啊啊啊啊啊()
我虽然不懂,但是我猜可能是50次挖的都是这一个坑
草草草草草草草草()
抱歉我没学过JS
我只觉得这十分 离 谱
说真的:(
emm……还有一种可能,就是你坑深=1但是运行过后坑深>1且x,z都没有挖,于是就将坑深>1的地方砍掉了于是就剩坑最顶端去掉的一个方块了,也就挖了一个坑
不,图中坑大小至少2*2
js默认库的随机数很少 输出 上下限 的 kitten也是
你真T****是个天才,让你给猜对了
这种事见到的太多了……
为什么连for循环都忘了怎么弄了)看来我滴经验还是有点p用的)
经验不够啊啊啊啊(
limit_breakrb++变成b+1直接

(累)
点赞0
评论
b+1不报错就怪了……
俩编程大佬的评论(((
?草
上面是脚本执行时间过长()跟b+1有什么关系(恼)
给b+1只能是b++,b=b+1,b+=1,So,b+1是干什么的???
我不是
斯,我是不是翻译错了()
我不会JS
有可能
草,无语直接www.runoob.com/js/js-statements.html
我先走了bye~
啊啊(混乱)
limit_breakrc喵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
评论
但是仍然没有效果(草)
DebugDynamo我不懂,但是我大为震撼()()
点赞0
评论
大佬您能不能别笑了😅(奇怪的笑)
教你个办法,把一些关键的数据用world.say广播出来()比如每次挖洞的坐标(?)
其实还有个办法,重新写一次就完事了()
😅(说些什么)
楼下不是说了吗)那两个随机数只调用了一次)要在每个循环中调用一次啊)))
在你回复完20min后就改好了(
伴雪纷飞想知道()
async前加个!是什么仪式吗()
点赞0
评论
就是匿名函数直接执行,(async function(){})()等于!async function(){}()
blog.csdn.net/qq_23853743/article/details/106757787
(另一种写法()编译器允许的()()
! ~ + % 等、 我觉得!加了舒服(?)些()
哦哦哦(尬死了
limit_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
评论