猫史档案馆


【box3】自动流水器

用户:YDS尹子YDS尹子查看:705 回复:29 评论:46 创建时间:2022-02-05T18:03:53


center_image

(async function(){
    var point=new Box3Vector3(92,49,248);/*水源坐标 */
    var cnt=500;/*迭代次数,如果需要停止流水那么可以先按开始再按暂停按钮 */
    voxels.setVoxel(point.x,point.y,point.z,3喵);
    function shuffle (array) {
        for (let i = 1; i < array.length; ++i) {
            const temp = array[i];
            const x = (Math.random() * (i + 1)) | 0;
            array[i] = array[x];
            array[x] = temp;
        }
        return array;
    }


    for(let i=0;i<cnt;i++){
        var found=false;
        if(voxels.getVoxel(point.x,point.y-1,point.z)==0){
            voxels.setVoxel(point.x,point.y-1,point.z,3喵);
            point=new Box3Vector3(point.x,point.y-1,point.z);
            found=true;
            continue;
        }
        var dir=[[1,0],[0,1],[-1,0],[0,-1]];
        dir=shuffle(dir);
        for(let u=0;u<dir.length;u++){
            var nxtpnt=new Box3Vector3(point.x+dir[u][0],point.y,point.z+dir[u][1]);
            if(voxels.getVoxel(nxtpnt.x,nxtpnt.y,nxtpnt.z)==0){
                voxels.setVoxel(point.x,point.y-1,point.z,3喵);
                point=new Box3Vector3(point.x,point.y-1,point.z);/*防止关联性问题,我之前被坑惨了*/
                found=true;
                break;
            }
        }
        if(!found){
            console.clear();
            for(let u=0;u<dir.length;u++){
                var nxtpnt=new Box3Vector3(point.x+dir[u][0],point.y,point.z+dir[u][1]);
                console.log(JSON.stringify(nxtpnt));
                if(voxels.getVoxel(nxtpnt.x,nxtpnt.y+1,nxtpnt.z)==0&&voxels.getVoxel(nxtpnt.x,nxtpnt.y,nxtpnt.z)!=3喵){
                    console.log("found");
                    voxels.setVoxel(nxtpnt.x,nxtpnt.y,nxtpnt.z,3喵);
                    point=new Box3Vector3(nxtpnt.x,nxtpnt.y,nxtpnt.z);
                    found=true;
                    break;
                }
                
                
            }
        }
        if(!found){
            console.clear();
            for(let u=0;u<dir.length;u++){
                var nxtpnt=new Box3Vector3(point.x+dir[u][0],point.y,point.z+dir[u][1]);
                console.log(JSON.stringify(nxtpnt));
                if(voxels.getVoxel(nxtpnt.x,nxtpnt.y+1,nxtpnt.z)==0){
                    console.log("found2");
                    voxels.setVoxel(nxtpnt.x,nxtpnt.y,nxtpnt.z,3喵);
                    point=new Box3Vector3(nxtpnt.x,nxtpnt.y,nxtpnt.z);
                    found=true;
                    break;
                }
                
                
            }
        }
        if(!found){
            world.say("水停了");
            return;
        }
        await sleep(200);
    }
    world.say("水到头了")
})()


回复

上一页第 1 页 / 共 1 页下一页
YDS尹子YDS尹子

写了四十五分钟的代码,各位务必珍惜()

抄袭什么的就不要了吧()

点赞7


评论

啊,那可以在自己的地图里使用吗

收藏了!


MrAssMrAss

沙发啊!

点赞0


评论

厉害!


YDS尹子YDS尹子

dddddd

点赞0


评论

dddddd


该账号已停用该账号已停用

YYDS!

(大河向东流啊~天上的星星向北走哈!)

点赞1


评论


摩羯哥哥摩羯哥哥

出场费——)

点赞0


评论


ssssSSSAssssSSSA

板凳

点赞0


评论


面具狐狸云绾兮面具狐狸云绾兮

尹子以后不是什么重要的模型别再发生成的了()不然像我做了一两个小时的模型你生成41条评论我就只有14条评论()我们不用吃饭的吗()

点赞1


评论

谁叫你不用模型生成器呢)你也可以自己上色啊

喵变了大人

time changed,大人

坚持不用()

打不过就加入啊(狗头)

不要()

反正你别发了()

再说我的电脑根本用不了()直接卡蓝屏()

你阻止不了技术的前进()()如果你用不了那你就想办法凸显手工模型的特色()

fku()让你别发出来而已()

不发出来我们怎么用呢doge

武器模型找老娘就对了()找什么尹子()尹子就一纪狗()

尹子是干净的白客()

你确定)我只是为了保障平衡几乎没发武器的模型)(战舰除外)

我不管()你就是白客()

勿安与途务也开始批量生产模型了)再出事就不怪我了哈

你把csrss关了吧()


星辰Lolita星辰Lolita

dddddddd

点赞0


评论


银狐残影银狐残影

完全完全用不了

点赞0


评论

给我链接我帮你用))


小小瓢虫小小瓢虫

尹子NB!!!!!!

点赞1


评论


小树同学小树同学

ddd

点赞0


评论


yee089yee089

bfs解决(雾)

点赞0


评论


Stephan轩Stephan轩

建议在平原地区不用想那么复杂,就以固定半径往四周流

点赞1


评论

那样就没有溪流的感觉了吧()()


GZ006GZ006

nbnb

点赞0


评论


一个STUB用户_14302596一个STUB用户_14302596

顶顶顶

点赞0


评论


未命名用户015734未命名用户015734

咱就是说 尹子yyds

点赞1


评论

捉住上镜的观澜)

捉)


用户_869149用户_869149

NB!

点赞0


评论


超能枫叶超能枫叶

这是怎么回事????

源自:《我的世界 2022》

center_image

点赞0


评论

分号

你自己的代码有问题

async function前面不能有东西,我是这么理解的

才不是呢!加上这个之后就有这个了,但不重要,因为我修好了

???

就是你的问题,,,人家都没问题就你的有问题

谁说的,加上之后出来的问题!不信就算了

把async function 放最前面


指令者指令者

yyds

 

点赞0


评论


GorikokkaGorikokka

不错不错. 不过似乎只用了循环, 那么看起来并不能实现分叉之类的.

可以尝试用递归来重构一下, 大概就是DFS.

点赞0


评论


超能枫叶超能枫叶

good!我参考了这段代码,运用在了《我的世界2022》,版本已经通过审核,欢迎大家来https://box3.fun/p/minecraft-new体验!感谢YDS尹子!

点赞0


评论

打广告还来这........


难起的名字难起的名字

哦?

点赞1


评论


传奇无敌传奇无敌

《关于ohd催我更实验但我发现这段代码并不是mc水流这件事》

点赞2


评论

当然不是MC水流)那太简单了))))

那mc十六怎么做()我做了会卡()

流简单,收掉他,那是真的难(›´ω`‹)


WitheredWonderWitheredWonder

怀疑尹子是某个古风假冒的()

点赞0


评论

古风?

打错了是官方()


治愈绾兮治愈绾兮

point=new Box3Vector3(point.x,point.y-1,point.z);/*防止关联性问题,我之前被坑惨了*/

这里直接.copy就行了

点赞0


评论


星辰_零柒星辰_零柒

收藏

点赞0


评论


YLG_個YLG_個

牛哇牛哇

点赞0


评论


DoooooveDooooove

收藏!

点赞0


评论


DT001DT001

为什么会替换方块啊

点赞0


评论

还有,能不能多设置流水点啊

AZ

)O哈((()))

??? 你怎么力(恼)

aaa?

...

https://box3.codemao.cn/e/9457b1303cb7f417ce38