猫史档案馆


搬码喵

搬码喵

Lv.1

本喵全能()

获赞:87收藏:22浏览:387作品收藏:7

签名:正在搬运代码,搬自己的!

回复帖子评论
上一页1 页 / 共 6下一页

【求助】怎么了 中回复

代码岛傻了。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

2021-09-27T22:10:33 点赞:0

函数中的返回是怎么用? 中回复

需要注意的是,在使用返回值的过程中,如果与条件判断结合,即“如果”“如果--否则”,则要全面考虑可能发生的情况。

比如:我们想要角色Y坐标大于0的时候返回所处位置的Y坐标值并显示出来。

假设如果角色自己的Y坐标>0,则返回自己的Y坐标值

点击运行会发现,系统显示报错信息:该函数有部分分支没有返回

这句话的意思就是说:我们只设置了Y坐标>0时,返回Y坐标值值,

但是我们没有告诉系统,Y坐标<0的时候该怎么做, 系统就会报错。

所以,我们应该设置:如果Y坐标>0,返回Y坐标值;否则就返回0。

可以这样设置:

也可以这样:

两种拼法都可以,这样一来就告诉系统,Y坐标大于0的时候,就返回一个Y坐标值,其他情况就返回0

系统就不会懵,也不会报错啦

2021-09-30T21:41:21 点赞:0

教程:【绘制“螺旋纹六芒星 ”】 代码&解析 中回复

import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))

 

2021-10-21T21:29:38 点赞:1

教程:【绘制“螺旋纹六芒星 ”】 代码&解析 中回复

import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))

2021-10-21T21:30:10 点赞:0

教程:【绘制“螺旋纹六芒星 ”】 代码&解析 中回复

import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
import turtle
import random

__Pen = turtle.Pen()


#开始进入Python的世界
__Pen.write('Hello')
for __count in range(random.randint(3, 10)):
    turtle.bgcolor("#ffccff")
    __Pen.pencolor("#330033")
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
    __Pen.goto(random.randint((-200), 200), random.randint(1, 200))
    __Pen.pendown()
    for __count in range(4):
        __Pen.forward(200)
        __Pen.right(90)
    __Pen.penup()
for __count in range(20):
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))
    print(turtle.numinput('对话框', '请输入数字', 0))

2021-10-21T21:30:51 点赞:0

【岛3萌新代码教程!】从0开始手把手教你写代码 中回复

functionspawn(x,y,z,meshName){ if(world.entityQuota()<=0){return}//如果可分配的实体小于等于0,就不再创建新的模型 varentity=world.createEntity({ mesh:meshName,//模型名 collides:true,//能碰撞 fixed:false,//固定 gravity:true,//受重力下落 meshScale:DefaultScale,//模型放大倍数 position:[x,y,z],//位置坐标 friction:0.5,//摩擦力 }) entity.enableDamage=true//允许公鸡受伤 entity.onVoxelContact(({x,y,z,voxel})=>{//当公鸡碰到地形方块 //当公鸡落地后,随机改变移动速度 entity.velocity.y=0.5+Math.random()*0.5 entity.velocity.x=(Math.random()-0.5)*0.5 entity.velocity.z=(Math.random()-0.5)*0.5 if(voxel===voxels.id('stone')){//如果公鸡碰到了石头方块,什么也不发生 }elseif(voxel===voxels.id('lava02')){//如果公鸡碰到了岩浆 entity.hurt(40)//公鸡扣40生命 }else{ voxels.setVoxel(x,y,z,'')//公鸡可以破坏其他类型的方块 } }) entity.onEntityContact(({other})=>{//当公鸡碰到另一个模型实体 if(other.isPlayer){//如果另一个模型实体是玩家 other.hurt(20)//这个玩家扣20生命 } }) varhandler=world.onTick(()=>{//计时循环,每秒更新16次公鸡的朝向 entity.meshOrientation=Quat.rotateY(Math.atan2(entity.velocity.z,entity.velocity.x))//公鸡朝向自己的移动方向 }) entity.onDie(()=>{//当公鸡喵(enitity.hp<=0) entity.destroy()//删除公鸡实体 score++; world.say('已经收拾了'+score+'只公鸡') }) entity.onDestroy(()=>{//当公鸡实体被删除 handler.cancel()//取消控制公鸡朝向的计时循环 }) returnentity } for(vari=0;i<250;i++){//生成250只公鸡模型实体 spawn(63,11+i,63,'mesh/公鸡.vb') } world.onPlayerJoin(({entity})=>{//当有新玩家进入游戏 entity.enableDamage=true//允许玩家受伤 entity.onVoxelSeparate(({x,y,z,voxel})=>{//玩家离开方块的时候 //spawn(x+0.5,y+1.5,z+0.5,'mesh/公鸡.vb')//在离开的方块留下公鸡模型 voxels.setVoxel(x,y+1,z,'lava02')//岩浆突出到地面 }) }) world.onPlayerLeave(({entity})=>{//当有玩家离开游戏 world.say('恭送'+entity.player.name)//世界广播 }) world.onChat(({entity,message})=>{//当有玩家在输入框发送消息 if(message==='1'){//如果那名玩家输入的是1 //让所有实体对你说欢迎 varallEntities=world.querySelectorAll('*'); for(vareofallEntities){ if(e.isPlayer){continue}//如果实体是玩家,就跳过 e.say('欢迎'+entity.player.name) } }elseif(message==='2'){ //让位置在(60,0,60)~(70,120,70)之间的实体对你说欢迎 varfoundEntities=world.searchBox(newBox3Bounds3( newBox3Vector3(60,0,60), newBox3Vector3(70,120,70), )) for(vareoffoundEntities){ if(e.isPlayer){continue}//如果实体是玩家,就跳过 e.say('hello'+entity.player.name) } }elseif(message==='复活'){ entity.hp=entity.maxHp entity.position.x=10 entity.position.y=50 entity.position.z=10 } }) world.breakVoxelSound=world.placeVoxelSound=''

2021-12-15T21:17:04 点赞:0

找个大神写代码 中回复

world.onPlayerJoin(({entity})=>{
    entity.dialog({
        type: Box3DialogTEXT
        poiler: entity.player.name
        couite: `Hello!`
    })
})

2022-01-31T11:17:06 点赞:0

关于神岛首页改版的建议征集 中回复

图形化编程,更高效!

world.querySelectorAll('*')

2022-02-10T11:43:29 点赞:0

章鱼游戏的代码是啥? 中回复

class UI_Dialog(object):
    def cube(self=None):
        self.Player.REFDT({return})

2022-02-15T13:11:38 点赞:0

box3图形化编辑器重启计划! 中回复

https://shequ.codemao.cn/wiki/forum/349644 https://shequ.codemao.cn/wiki/forum/349644

2022-02-17T16:30:59 点赞:0

章鱼游戏的代码是啥? 中回复

entity

2022-02-19T14:19:32 点赞:0

代码岛崩了 中回复

哇,我受够了center_image

2022-03-13T11:22:20 点赞:0

我的岛3崩了! 中回复

center_image是这样吗?

 

2022-03-13T13:39:37 点赞:0

求助求助!!! 中回复

我也见过

2022-03-13T13:52:08 点赞:0

【云房间】聊天室示例作品 中回复

www.yuque.com/coco-central/course/cloud-room

2022-03-26T15:43:01 点赞:0

关于神奇代码岛接入实名认证的公告 中回复

https://shequ.codemao.cn/community/437639

2022-04-12T16:29:28 点赞:0

大家久违的圈地之王代码: 中回复

const SECONDS_PER_TICK = 1000 / 128; 
const ROUND_TIME = 200 * SECONDS_PER_TICK;//每局游戏时长
const MIN_PLAYERS = 2;//玩家数量下限
const GRID_X = 128;
const GRID_Z = 128;

const TEAMS = [
    { r: 1, g: 0, b: 0, v: voxels.id('red_light'),      n: '红队',       score: 0, },
    { r: 0, g: 1, b: 0, v: voxels.id('green_light'),    n: '绿队',     score: 0, },
    { r: 0, g: 0, b: 1, v: voxels.id('blue_light'),     n: '蓝队',      score: 0, },
    { r: 1, g: 0, b: 1, v: voxels.id('purple'),         n: '紫队',   score: 0, },
    { r: 0, g: 1, b: 1, v: voxels.id('indigo_light'),   n: '靛蓝队',      score: 0, },
    { r: 1, g: 1, b: 0, v: voxels.id('yellow_light'),   n: '黄队',    score: 0, },
];

// 辅助函数,用于随机打乱一个数组
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;
}

async function startGame () {
    // 将地面初始化,全部变成不锈钢
    for (let j = 0; j < GRID_Z; ++j) {
        for (let i = 0; i < GRID_X; ++i) {
            voxels.setVoxel(i, 8, j, 'stainless_steel');
        }
    }
    
    // 等待玩家进入
    while (world.querySelectorAll('player').length < MIN_PLAYERS) {
        world.say('等待其他玩家加入...');
        await sleep(1000);
        world.say('2个玩家立即开始');
        await world.nextPlayerJoin();
    }

    // 足够玩家加入后,就开始倒计时
    for (let i = 3; i > 0; --i) {
        world.say(i + '...');
        await sleep(1000);
    }
    world.say('去圈地吧!看谁是圈地之王?');
    
    // 每局都随机打乱队伍
    const players = shuffle(world.querySelectorAll('player'));
    shuffle(TEAMS);
    
    // 设置玩家的颜色和初始位置
    function setTeam (p, t) {
        p.player.color.r = t.r;
        p.player.color.g = t.g;
        p.player.color.b = t.b;
        p.position.x = Math.random() * GRID_X;
        p.position.y = 30;
        p.position.z = Math.random() * GRID_Z;
    }

    // 获得初始团队
    const teams = players.map((p, i) => {
        const t = TEAMS[i % TEAMS.length]
        setTeam(p, t);
        return t;
    })
    
    //当玩家接触到地面任意方块时,更新该方块的颜色
    const contactHandler = world.onVoxelContact(({ entity, x, y, z }) => {
        const idx = players.indexOf(entity);
        if (idx < 0) {
            return;
        }
        const t = teams[idx];
        voxels.setVoxelId(x, y, z, t.v);
    });
    
    // 新玩家加入,会被随机分配到一个队伍
    const joinHandler = world.onPlayerJoin(({entity}) => {
        const t = TEAMS[(Math.random() * teams.length) | 0];
        setTeam(entity, t);
        teams.push(t);
        players.push(entity)
    });
    
    // 每局游戏会在计时到达时结束。
    const endTick = world.currentTick + ROUND_TIME;
    
    // 检测游戏是否进行中
    function gameInProgress () {
        let numActivePlayers = 0;
        for (let i = 0; i < players.length; ++i) {
            if (!players[i].destroyed) {
                numActivePlayers += 1;
            }
        }
        return world.currentTick < endTick && numActivePlayers >= MIN_PLAYERS;
    }
    
    // 通过深度优先搜索,将圈起来的地自动填色
    const visited = new Uint8Array(GRID_X * GRID_Z)
    const toVisit = []
    function mark (i, j, team) {
        const idx = i + j * GRID_X;
        if (i < 0 || i >= GRID_X ||
            j < 0 || j >= GRID_Z ||
            visited[idx] ||
            voxels.getVoxel(i, 8, j) === team) {
            return;
        }
        visited[idx] = true;
        toVisit.push(i, j);
    }
    function fillHoles (team) {
        visited.fill(0);
        for (let i = 0; i < Math.max(GRID_X, GRID_Z); ++i) {
            mark(i, 0, team);//更正了,将8改成了0
            mark(0, i, team);
            mark(GRID_X - 1, i, team);
            mark(i, GRID_Z - 1, team);
        }
        
        while (toVisit.length > 0) {
            const z = toVisit.pop() | 0;
            const x = toVisit.pop() | 0;
            mark(x - 1, z, team);
            mark(x + 1, z, team);
            mark(x, z - 1, team);
            mark(x, z + 1, team);
        }
        
        let score = 0;
        for (let j = 0; j < GRID_Z; ++j) {
            for (let i = 0; i < GRID_X; ++i) {
                const idx = i + j * GRID_X;
                if (!visited[idx]) {
                    voxels.setVoxelId(i, 8, j, team);
                    score += 1;
                }
            }
        }
        return score;
    }
    
    // 当游戏运行时
    while (gameInProgress()) {
        // 等待 1 Tick
        await world.nextTick();
        
        // 计算各队伍的分数
        for (let i = 0; i < TEAMS.length; ++i) {
            const c = TEAMS[i].score = fillHoles(TEAMS[i].v);
            
            // 如果有团队圈完全场,那么直接胜出
            if (c >= GRID_X * GRID_Z) {
                break;
            }
        }
    }
    
    // 清除事件处理器
    contactHandler.cancel();
    joinHandler.cancel();

    // 重置玩家颜色
    for (let i = 0; i < players.length; ++i) {
        const c = players[i].player.color;
        c.r = c.g = c.b = 1;
    }
    world.say('本局游戏结束!');
    await sleep(5000);
    
    // 宣布获胜队伍
    TEAMS.sort((a, b) => b.score - a.score);
    world.say(`恭喜 ${TEAMS[0].n} 成为圈地之王!!`);
    await sleep(10000);
}

// 无限循环游戏
async function gameLoop () {
    while (true) {
        await startGame();    
    }
}
gameLoop();

2022-04-28T11:21:15 点赞:0

图形化BOX3 Blockly V.1.3.11更新日志 中回复

顶!!!!

 

2022-05-02T19:23:03 点赞:0

图形化BOX3 Blockly V.1.3.11更新日志 中回复

@编码喵,对话框在哪?

 

2022-05-02T19:25:59 点赞:0

【萌新来发教程帖】教你制作时钟(电子表版) 中回复

额额额额额额额额额

2022-05-02T20:02:07 点赞:0

【Python作品分享】PyQt5实例化GUI【教程贴】 中回复

效果:center_image

2022-05-04T14:24:14 点赞:0

【Python作品分享】贪吃蛇【作品秀】 中回复

顶!

 

2022-05-06T15:48:17 点赞:0

招人啦!!!!! 中回复

hi

 

 

 

 

 

2022-05-07T18:07:04 点赞:0

关于神奇代码岛的公告 中回复

没问题!!

 

2022-06-08T15:14:52 点赞:0

神奇代码岛的新域名,由你来决定! 中回复

2【因为第一个看不懂】

2022-07-01T14:12:50 点赞:0

【CoCo 最强攻略】一个神奇的应用制作工具! 中回复

定位????没有吧???

2022-07-11T17:02:33 点赞:0

向大佬求助 中回复

center_imagecenter_image

创建数据表

2022-07-11T18:13:53 点赞:0

为啥coco控制台执行文件的开头是一张…… 中回复

呃呃呃呃呃呃

2022-07-11T18:16:17 点赞:0

欢迎代码大佬加入~ 中回复

我要参与

2022-07-12T12:15:57 点赞:0

欢迎代码大佬加入~ 中回复

我要参与

2022-07-12T12:16:08 点赞:0