Hello!大家好,我是@学生小羊,今天分享几个Goc游戏。
//注:以下代码为Goc原创代码。
大家可以在下面网址写入代码
www.51goc.com慧通教育
http://www.51goc.com
注:Goc编辑器路径:
www.51goc.com ➡ 登录 ➡ 游客登陆 ➡ 入门课程 ➡ WebGoc
实在不行就试一下 下面这个链接:
WebGoc
https://www.51goc.com/static/gocWebNet/gocWebNet.html?submitBt=0&insert=0&ra=60&winName=20200413
给点面子,评论一下这个作品吧!
1.口算测试
int a,b,lv=1,score=0,nd,yu,da,day,j,s_j=0,cuo=0;
int main(){
p.picL(1,"boy0.png").picL(2,"boy1.png").picL(3,"boy2.png").picL(4,"boy3.png");
p.rr(1000,1000,14).speed(10).up().hide();
p.moveTo(0,150).text("加载中......",15,50);
p.moveTo(0,-100).rr(400,20,15).r(400,20,0);
wait(1);
p.moveTo(-175,-100).rr(50,15,10).rt(90);
wait(1);
for(int i=1;i<7;i++)
{
p.fd(50).rr(50,15,10);
wait(rand(1,2));
}
p.fd(50).rr(50,15,10);
wait(0.5);
p.moveTo(0,0).rr(1000,1000,14).text("加载成功!",15,75);
wait(1);
p.moveTo(-100,0).rr(1000,1000,14).text("欢迎来到口算测试,",15,20);
wait(1);
p.moveTo(30,-30);
p.text("这是一个针对弟弟妹妹们练习口算而准备的软件,",15,20);
p.moveTo(0,-90);
wait(1);
p.text("作者:小羊",15,20);
p.moveTo(0,-120);
p.text("无敌工作室出品",15,20);
wait(3);
p.picU(0);
p.moveTo(0,0).rr(800,800,14);
p.moveTo(0,200).text("规则",15,50);
p.moveTo(-200,150).lt(90).text("1.先输入难度。",15,40);
p.moveTo(0,100).text("2.等待一会儿后,看题目,输入答案。",15,40);
p.moveTo(160,50).lt(90).fd(170).text("3.每答对一题加1分,每多5分就升级。",15,40).bk(170).rt(90);
p.moveTo(0,0);
cinTitle( "请输入初始难度(10-100,大于100的记为100,小于10的记为10):");
cin>>nd;
if(nd>100)
{
nd=100;
}
if(nd<10)
{
nd=10;
}
p.rr(800,800,14);
p.speed(10).moveTo(200,370).text("分数:",15,40).rt(90);
p.fd(90).oo(50,15).text(score,0,50).bk(100);
p.lt(90).bk(100);
p.moveTo(190,300).text("等级:",15,40).rt(90).fd(100).oo(50,15);
p.text(lv,0,50).bk(90);
p.lt(90);
p.picL(5,"pan.png").moveTo(300,-100);
for(int i=1;;i++)
{
int ans;
//p.rr(1000,1000,14);
p.moveTo(300,100).rr(300,200,14);
p.moveTo(0,160).rr(400,60,14);
a=rand(0,nd),b=rand(0,nd);
p.moveTo(-200,100).rr(1600,100,14).ee(50,30,15);
p.speed(10);
if(lv%4==1)
{
p.moveTo(-100,100).rr(50,50,14).rr(10,50,15).rr(50,10,15);
ans=a+b;
}
if(lv%4==2)
{
if(a<b)
{
int t=a;
a=b;
b=t;
}
p.moveTo(-100,100).rr(50,50,14).rr(50,10,15);
ans=a-b;
}
if(lv%4==3)
{
if(a>=50)
a=a-40;
if(b>=50)
b=b-40;
p.moveTo(-100,100).rt(45);
p.rr(50,50,14).rr(10,50,15).rr(50,10,15).lt(45);
ans=a*b;
}
if(lv%4==0)
{
b=rand(1,nd),a=rand(1,nd);
if(a<b)
{
int t=a;
a=b;
b=t;
}
p.moveTo(-100,100);
p.rr(50,50,14).rr(50,50,14).rr(50,10,15);
p.fd(20).oo(5,15).bk(40).oo(5,15);
ans=a/b,yu=a%b;
}
p.speed(10);
p.moveTo(-200,-200).rr(200,200,14);
p.moveTo(0,100).ee(50,30,15);
p.speed(5);
p.moveTo(100,100).fd(20);
p.rr(50,10,15).bk(40).rr(50,10,15);
p.moveTo(200,100).ee(50,30,15);
if(lv%4==0&&yu!=0)
{
p.moveTo(250,75).rt(90);
for(int i=1;i<=6;i++)
{
p.oo(5,15).fd(15);
}
p.moveTo(350,100).oo(30,15).lt(90).fd(15);
p.bk(15);
}
p.speed(10);
p.moveTo(-200,100).text(a,0,40);
p.moveTo(0,100).text(b,0,40);
p.moveTo(150,120);
cinTitle("请输入答案:");
cin>>da;
p.moveTo(200,100).text(da,0,40);
if(lv%4==0&&yu!=0)
{
p.moveTo(325,120);
cinTitle("请输入余数:");
cin>>day;
p.moveTo(350,100).text(day,0,40);
if(da==ans&&day==yu)
{
p.moveTo(0,150);
p.text("恭喜你,答对了!",15,50);
score++;
wait(1);
int djpd=score/5;
lv=djpd+1;
if(lv==5) j++,lv=1,nd+=100;
if(lv+j*4==20) s_j++;
p.speed(10).moveTo(200,370).text("分数:",15,40).rt(90);
p.fd(90).oo(50,15).text(score,0,50).bk(100);
p.lt(90).bk(100);
p.moveTo(190,300).text("等级:",15,40).rt(90).fd(100).oo(50,15);
p.text(djpd+1,0,50).bk(90);
p.lt(90);
p.moveTo(-200,-200);
for(int i=1;i<=50/2;i++)
{
p.rr(200,200,14).pic(i%4+1);
wait(0.1);
}
}
else
{
p.moveTo(0,150);
p.text("阿欧,答错了!",15,50);
wait(1);
p.moveTo(-50,0).text("正确答案是:",15,50);
p.moveTo(150,0).text(ans,13,50);
p.moveTo(200,0).text("余",15,50);
p.moveTo(250,0).text(yu,13,50);
wait(2);
p.moveTo(0,-40).rr(800,100,14);
p.moveTo(250,0).rr(500,100,14);
p.moveTo(300,-100).pic(1);
cuo++;
}
}
else
{
if(da==ans)
{
p.moveTo(0,150);
p.text("恭喜你,答对了!",15,50);
score++;
wait(1);
int djpd=score/5;
lv=djpd+1;
if(lv==5) j++,lv=1,nd+=100;
if(lv+j*4==20) s_j++;
p.speed(10).moveTo(200,370).text("分数:",15,40).rt(90);
p.fd(90).oo(50,15).text(score,0,50).bk(100);
p.lt(90).bk(100);
p.moveTo(190,300).text("等级:",15,40).rt(90).fd(100).oo(50,15);
p.text(djpd+1,0,50).bk(90);
p.lt(90);
p.moveTo(-200,-200);
for(int i=1;i<=50/2;i++)
{
p.rr(200,200,14).pic(i%4+1);
wait(0.1);
}
}
else
{
p.moveTo(0,150);
p.text("阿欧,答错了!",15,50);
wait(1);
p.moveTo(-50,0).text("正确答案是:",15,50);
p.moveTo(150,0).text(ans,13,100);
wait(2);
p.moveTo(0,0).rr(800,150,14);
cuo++;
}
}
if(cuo==20)
{
for(int i=1;i<=500;i++){
int a1=rand(-350,350),b1=rand(-350,350);
int a=rand(1,14),b=rand(1,14);
p.moveTo(a1,b1);
p.rr(100,100,8).r(100,100,0);
p.fd(45).rr(100,20,0).lt(90).fd(40).rt(90).bk(10);
for(int i=1;i<=rand(2,4);i++)
{
int aa=rand(35 ,80);
p.c(0).bk(20).rt(90).down().fd(aa).bk(aa).up();
p.lt(90);
}
wait(0.01);
}
p.rr(10000,10000,2).moveTo(0,100).lt(90).up().fd(50).oo(20,15);
p.bk(100).oo(20,15);
p.fd(50).rt(90).bk(50).ee(50,20,15);
p.moveTo(0,0);
p.text("不好意思,您的电脑已崩溃,正在抢救中......",15,40);
wait(rand(1,3));
p.rr(10000,10000,2).moveTo(0,100).lt(90).up().fd(50).oo(20,15);
p.bk(100).oo(20,15);
p.fd(50).rt(90).bk(50).ee(50,20,15);
p.moveTo(0,0);
p.text("不好意思,您的电脑已崩溃,抢救失败。",15,40);
wait(1.5);
p.rr(10000,10000,2).text("正在关机......",15,40);
wait(rand(1,3));
p.rr(1000,1000,0);
return 0;
}
}
return 0;
}
2.坦克
void tanke1()
{
p.up();
p.picU(0);
p.rr(60,40,0);
p.rr(50,50,8);
p.rr(25,25,0);
p.fd(20).rr(10,40,0).bk(20);
}
void tanke2()
{
p.rt(90);
p.up();
p.picU(0);
p.rr(60,40,0);
p.rr(50,50,8);
p.rr(25,25,0);
p.fd(20).rr(10,40,0).bk(20);
}
void tanke3()
{
p.rt(180);
p.up();
p.picU(0);
p.rr(60,40,0);
p.rr(50,50,8);
p.rr(25,25,0);
p.fd(20).rr(10,40,0).bk(20);
}
void tanke4()
{
p.lt(90);
p.up();
p.picU(0);
p.rr(60,40,0);
p.rr(50,50,8);
p.rr(25,25,0);
p.fd(20).rr(10,40,0).bk(20);
}
void paodan1()
{
p.lt(90);
pen.alp(0.7).c(8).ee(10,20).c(0).ee(10,20);
pen.up().bk(20).rr(20,40,8).rr(20,10,0).fd(20).alp(1);
p.rt(90);
}
void paodan2()
{
p.rt(90);
pen.alp(0.7).c(8).ee(10,20).c(0).ee(10,20);
pen.up().bk(20).rr(20,40,8).rr(20,10,0).fd(20).alp(1);
p.lt(90);
}
void paodan3()
{
pen.alp(0.7).c(8).ee(10,20).c(0).ee(10,20);
pen.up().bk(20).rr(20,40,8).rr(20,10,0).fd(20).alp(1);
}
void paodan4()
{
p.rt(180);
pen.alp(0.7).c(8).ee(10,20).c(0).ee(10,20);
pen.up().bk(20).rr(20,40,8).rr(20,10,0).fd(20).alp(1);
p.lt(180);
}
int a,b,c,s=0,l=0;
int tankex,tankey;
int paodanx,paodany;
int sp=20;//速度
int tankefx=1;//坦克方向
int pdfs=0;//是否发射
int pdfx;
int stonex,stoney;
int stonehua=0;//是否重新画石头
int cishu=0;//打中次数
int bsec;
double daoshu=60;
void stone()
{
for(int i=1;i<=5;i++)
{
if(stonehua==0)
{
stonex=rand(-250,250);
stoney=rand(-250,250);
stonehua=1;
}
p.moveTo(stonex,stoney);
stonex+=rand(-l,l);
stoney+=rand(-l,l);
p.rr(50,50,6);
if(s==0)
{
a=rand(1,3);
b=rand(1,3);
c=rand(1,3);
s=1;
}
if((a==2&&b==2)||(b==2&&c==2)||(a==2&&c==2))
{
p.text("日军间谍",15,12);
l=2;
}
else
if(a==3&&b==3&&c==3)
{
p.text("日本军官",15,12);
l=3;
}
else
{
p.text("日军",15,18);
l=1;
}
}
}
void check()
{
if(paodanx>=stonex-30&&paodanx<=stonex+30&&paodany>=stoney-30&&paodany<=stoney+30)
{
s=0;
stonehua=0;
paodanx=0;
paodany=0;
pdfs=0;
cishu+=l;
}
}
int main()
{
p.picU(0);
p.speed(10).hide().moveTo(0,0);
p.text("空格键发射炮弹,攻击日本军,有120秒的时间。",0,25);
p.up().bk(50).down().text("日军1分,日军间谍2分,日本军官3分。",0,25);
wait(5);
for(;;)
{
p.speed(10000000000000000000000000000).hide();
p.rr(800,800,10);//绿色背景
if(getTime()>=120)
{
p.moveTo(-100,0);
p.text(" 你一共获得",15,25);
p.moveTo(0,0);
p.text(cishu,15,30);
p.moveTo(20,0);
p.text(" 分",15,25);
break;
}
int k=getKey();//检测键盘按键,根据不同的按键,计算坦克新的坐标
if(k==37)
{
tankex-=sp;
tankefx=4;
}
if(k==39)
{
tankex+=sp;
tankefx=2;
}
if(k==38)
{
tankey+=sp;
tankefx=1;
}
if(k==40)
{
tankey-=sp;
tankefx=3;
}
if(k==32)//空格键
{
pdfs=1;
pdfx=tankefx;
paodanx=tankex;
paodany=tankey;
}
stone();//画石头
p.speed(10).hide();
if(pdfs==1)
{
p.moveTo(paodanx,paodany);
if(pdfx==1)paodany+=10;
if(pdfx==2)paodanx+=10;
if(pdfx==3)paodany-=10;
if(pdfx==4)paodanx-=10;
if(tankefx==4)
paodan1();
if(tankefx==2)
paodan2();//画炮弹
if(tankefx==1)
paodan3();
if(tankefx==3)
paodan4();
}
p.moveTo(tankex,tankey);//到坦克坐标,根据坦克方向画出坦克
if(tankefx==1)tanke1();
if(tankefx==2)tanke2();
if(tankefx==3)tanke3();
if(tankefx==4)tanke4();
p.moveTo(0,-200);
p.text(120-getTime());//输出倒计时时间
check();//检测是否时间结束
wait(0.0001);
p.cls();
}
return 0;
}
3.扫雷
输入坐标(先行后列),动作(0是点击开启,1是标记为地雷,2是取消标记)
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;
}