小游戏##

GOC

Hello!大家好,今天分享一个Goc游戏。

//注:以下代码为Goc原创代码。

大家可以在下面网址写入代码
慧通教育icon-default.png?t=O83Ahttp://www.51goc.com
注:Goc编辑器路径:

www.51goc.com ➡ 登录 ➡ 游客登陆 ➡ 入门课程 ➡ WebGoc

实在不行就试一下 下面这个链接:

WebGocicon-default.png?t=O83Ahttps://www.51goc.com/static/gocWebNet/gocWebNet.html?submitBt=0&insert=0&ra=60&winName=20200413

int n,m,k;
bool book[45][45],map[45][45];
void open(int x,int y){
    p.moveTo(-m*10,n*10);
    p.fd(20*(y-1)).rt(90).fd(20*(x-1)).lt(90);
    p.rr(20,20,8).r(20,20);
}
void dfs(int posx,int posy){
    if(posx<1||posy<1||posx>n||posy>n||book[posx][posy]){
        return;
    }
    book[posx][posy]=true;
    int nearby_bombs=0;
    for(int x_plus=-1;x_plus<=1;x_plus++){
        for(int y_plus=-1;y_plus<=1;y_plus++){
            if(x_plus==0&&y_plus==0) continue;
            if(map[posx+x_plus][posy+y_plus]){
                nearby_bombs++;
            }
        }
    }
    open(posx,posy);
    if(nearby_bombs) p.text(nearby_bombs,0,15);
    else{
        for(int x_plus=-1;x_plus<=1;x_plus++){
            for(int y_plus=-1;y_plus<=1;y_plus++){
                if(x_plus==0&&y_plus==0) continue;
                dfs(posx+x_plus,posy+y_plus);
            }
        }
    }
}
int main(){
    p.hide().up().speed(10);
    p.text("goc扫雷",10,100);
    p.bk(100).text("作者:无名氏",12,75);
    p.fd(350).text("BOOM!",1,200);
    wait(3);
    p.cls();
    p.text("输入行数、列数、大概地雷数");
    cin>>n>>m>>k;
    int dl=0;
    p.cls();
    p.moveTo(-m*10,n*10);
    for(int i=1;i<=n;i++) p.fd(20).text(i,7,10).bk(20).rt(90).fd(20).lt(90);
    p.lt(90);
    p.moveTo(-m*10,n*10);
    for(int i=1;i<=n;i++) p.fd(20).text(i,7,10).bk(20).lt(90).fd(20).rt(90);
    p.rt(180);
    p.moveTo(-m*10,n*10);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            map[i][j]=(rand(1,n*m)<=k);
            if(map[i][j]) dl++;
            p.rgb(i*8,200-j*6,i*7-j*5).rr(20,20,16).r(20,20).fd(20);
        }
        p.rt(90).fd(20).rt(90).fd(m*20).lt(180);
    }
    int temp=dl;
    int x,y,mod,biaoji;
    while(1){
       cin>>x>>y>>mod;
       p.moveTo(-m*10,n*10);
        if(mod==1){
            if(book[x][y]||biaoji==temp) continue;
            p.fd(20*(y-1)).rt(90).fd(20*(x-1)).lt(90);
            p.rr(20,20,1).r(20,20);
            if(map[x][y]) dl--;
            biaoji++;
            if(dl==0){
                p.cls();
                p.moveTo(0,0);
                p.text("通关!",250,250);
                return 0;
            }
        }
        else if(mod==0){
            if(map[x][y]){
                p.cls().rr(1000,1000,1).rr(600,600,14).text("Boom!",0,100);
                wait(3);
                return 0;
            }
            else dfs(x,y);
        }
        else{
            p.fd(20*(y-1)).rt(90).fd(20*(x-1)).lt(90);
            p.rgb(x*8,200-y*6,x*7-y*5).rr(20,20,16).r(20,20);
        }
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值