猫史档案馆


【box3】自动流水器

用户:YDS尹子YDS尹子查看:46 回复: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


评论


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

YYDS!

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

点赞1


评论


摩羯哥哥摩羯哥哥

出场费——)

点赞0


评论


ssssSSSAssssSSSA

板凳

点赞0


评论


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

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

点赞1


评论


星辰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


评论


指令者指令者

yyds

 

点赞0


评论


GorikokkaGorikokka

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

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

点赞0


评论


超能枫叶超能枫叶

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

点赞0


评论


难起的名字难起的名字

哦?

点赞1


评论


传奇无敌传奇无敌

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

点赞2


评论


WitheredWonderWitheredWonder

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

点赞0


评论


治愈绾兮治愈绾兮

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

这里直接.copy就行了

点赞0


评论


星辰_零柒星辰_零柒

收藏

点赞0


评论


YLG_個YLG_個

牛哇牛哇

点赞0


评论


DoooooveDooooove

收藏!

点赞0


评论


DT001DT001

为什么会替换方块啊

点赞0


评论