为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

俄罗斯方块代码

2017-10-15 13页 doc 34KB 71阅读

用户头像

is_648706

暂无简介

举报
俄罗斯方块代码俄罗斯方块代码 #include #include #include int Mark[32][13]; int flag=0; void InitMark() /*init the cap */ {int i,j; for(i=1;i<31;i++) for(j=1;j<11;j++) Mark[i][j]=0; for(j=0;j<13;j++) {Mark[0][j]=1; Mark[31][j]=1; } for(i=1;i<31;i++) {Mark[i][0]=1; Mark[...
俄罗斯方块代码
俄罗斯方块代码 #include #include #include int Mark[32][13]; int flag=0; void InitMark() /*init the cap */ {int i,j; for(i=1;i<31;i++) for(j=1;j<11;j++) Mark[i][j]=0; for(j=0;j<13;j++) {Mark[0][j]=1; Mark[31][j]=1; } for(i=1;i<31;i++) {Mark[i][0]=1; Mark[i][11]=1; Mark[i][12]=0; } } void Draw1(int x,int y) /*draw the long bock*/ {setfillstyle(1,2); bar(x-9,y+1,x-1,y+9);Mark[(y-90)/10][(x-100)/10]=1;Mark[(y-90)/10] [12]++; bar(x+1,y+1,x+9,y+9);Mark[(y-90)/10][(x-90)/10]=1; Mark[(y-90)/10][12]++; bar(x+11,y+1,x+19,y+9);Mark[(y-90)/10][(x-80)/10]=1;Mark[(y-90)/10 ][12]++; bar(x+21,y+1,x+29,y+9);Mark[(y-90)/10][(x-70)/10]=1;Mark[(y-90)/10 ][12]++; } void Draw1_1(int x,int y)/*???ÇÉÏÒ??ö??ÐÎ???é*/ {setfillstyle(1,BLACK); bar(x-9,y+1,x+29,y+10); Mark[(y-90)/10][(x-100)/10]=0;Mark[(y-90)/10][12]--; Mark[(y-90)/10][(x-90)/10]=0;Mark[(y-90)/10][12]--; Mark[(y-90)/10][(x-80)/10]=0;Mark[(y-90)/10][12]--; Mark[(y-90)/10][(x-70)/10]=0;Mark[(y-90)/10][12]--; } void Draw1_2(int x,int y)/*The up long Block*/ {setfillstyle(1,2); bar(x+1,y-9,x+9,y-1);Mark[(y-100)/10][(x-90)/10]=1;Mark[(y-100)/10][12]++; bar(x+1,y+1,x+9,y+9);Mark[(y-90)/10][(x-90)/10]=1;Mark[(y-90)/10][12]++; bar(x+1,y+11,x+9,y+19);Mark[(y-80)/10][(x-90)/10]=1;Mark[(y-80)/10][12]++; bar(x+1,y+21,x+9,y+29);Mark[(y-70)/10][(x-90)/10]=1;Mark[(y-70)/10][12]++; } void Draw1_3(int x,int y) /*cover the Long Block*/ {setfillstyle(1,BLACK); bar(x+1,y-9,x+9,y+29); Mark[(y-100)/10][(x-90)/10]=0;Mark[(y-100)/10][12]--; Mark[(y-90)/10][(x-90)/10]=0;Mark[(y-90)/10][12]--; Mark[(y-80)/10][(x-90)/10]=0;Mark[(y-80)/10][12]--; Mark[(y-70)/10][(x-90)/10]=0;Mark[(y-70)/10][12]--; } void Draw2(int x,int y) /*draw the Tian bock*/ {setfillstyle(1,3); bar(x-9,y+1,x-1,y+9);Mark[(y-90)/10][(x-100)/10]=1;Mark[(y-90)/10][12]++; bar(x+1,y+1,x+9,y+9);Mark[(y-90)/10][(x-90)/10]=1; Mark[(y-90)/10][12]++; bar(x-9,y+11,x-1,y+19);Mark[(y-80)/10][(x-100)/10]=1;Mark[(y-80)/10][12]++; bar(x+1,y+11,x+9,y+19);Mark[(y-80)/10][(x-90)/10]=1;Mark[(y-80)/10][12]++; } void Draw2_1(int x,int y) /*cover the Tian bock*/ {setfillstyle(1,BLACK); bar(x-9,y+1,x+9,y+19); Mark[(y-90)/10][(x-100)/10]=0;Mark[(y-90)/10][12]--; Mark[(y-90)/10][(x-90)/10]=0; Mark[(y-90)/10][12]--; Mark[(y-80)/10][(x-100)/10]=0;Mark[(y-80)/10][12]--; Mark[(y-80)/10][(x-90)/10]=0;Mark[(y-80)/10][12]--; } void Draw3(int x,int y) {setfillstyle(1,4); bar(x-9,y+1,x-1,y+9);Mark[(y-90)/10][(x-100)/10]=1;Mark[(y-90)/10] [12]++; bar(x+1,y+1,x+9,y+9);Mark[(y-90)/10][(x-90)/10]=1; Mark[(y-90)/10][12]++; bar(x+1,y+11,x+9,y+9);Mark[(y-80)/10][(x-90)/10]=1;Mark[(y-80)/10] [12]++; bar(x+11,y+11,x+19,y+19);Mark[(y-80)/10][(x-80)/10]=1;Mark[(y-90)/ 10][12]++; } void Draw3_1(int x,int y) {setfillstyle(1,BLACK); bar(x-10,y,x+10,y+10); Mark[(y-90)/10][(x-100)/10]=0;Mark[(y-90)/10][12]--; Mark[(y-90)/10][(x-90)/10]=0; Mark[(y-90)/10][12]--; bar(x,y+10,x+20,y+20); Mark[(y-80)/10][(x-90)/10]=0;Mark[(y-80)/10][12]--; Mark[(y-80)/10][(x-80)/10]=0;Mark[(y-90)/10][12]--; } void Screen() { rectangle(100,100,200,400); rectangle(250,150,300,200); } int Block() {int i,j; i=flag; flag=random(3); switch(flag) {case 0:setfillstyle(1,BLACK); bar(251,151,299,199); setfillstyle(1,RED); bar(256,171,264,179); bar(266,171,274,179); bar(276,171,284,179); bar(286,171,294,179); break; case 1:setfillstyle(1,BLACK); bar(251,151,299,199); setfillstyle(1,RED); bar(271,156,279,164); bar(271,166,279,174); bar(271,176,279,184); bar(271,186,279,194); break; case 2:setfillstyle(1,BLACK); bar(251,151,299,199); setfillstyle(1,RED); bar(266,156,274,164); bar(276,156,284,164); bar(266,166,274,174); bar(276,166,284,174); break; } return i; } int Control(int CH,int x,int y) {int key; switch(CH) {case 0:/*?ÔÆ??Å???Ù×?*/ Draw1(x,y); while(Mark[(y-80)/10][(x-100)/10]==0&&Mark[(y-80)/10][(x-90)/10]==0&&Mark[(y-80)/10][(x-80)/10]==0&&Mark[(y-80)/10][(x-70)/10]==0) { if(kbhit()) {key=getch(); if(key==75&&Mark[(y-90)/10][(x-110)/10]==0) {Draw1_1(x,y);x-=10;Draw1(x,y);} else if(key==77&&Mark[(y-90)/10][(x-60)/10]==0) {Draw1_1(x,y);x+=10;Draw1(x,y);} else if(key==32&&Mark[(y-100)/10][(x-90)/10]==0&&Mark[(y-80)/10][(x-90)/10]==0&&Mark[(y-70)/10][(x-90)/10]==0) {Draw1_1(x,y);Control(1,x,y);break;} else if(key==80&&Mark[(y-80)/10][(x-100)/10]==0&&Mark[(y-80)/10][(x-90)/10]==0&&Mark[(y-80)/10][(x-80)/10]==0&&Mark[(y-80)/10][(x-70)/10]==0) {Draw1_1(x,y); while(Mark[(y-80)/10][(x-100)/10]==0&&Mark[(y-80)/10][(x-90)/10]==0&&Mark[(y-80)/10][(x-80)/10]==0&&Mark[(y-80)/10][(x-70)/10]==0) {y+=10; } Draw1(x,y); break; } else if(key==27){return 27;} } Draw1_1(x,y); y+=10; Draw1(x,y); delay(10000000000); } break; case 1: /*?ÔÊú?Å???Ù×?*/ Draw1_2(x,y); while(Mark[(y-60)/10][(x-90)/10]==0) { if(kbhit()) {key=getch(); if(key==75&&Mark[(y-100)/10][(x-100)/10]==0&&Mark[(y-90)/10][(x-10 0)/10]==0&&Mark[(y-80)/10][(x-100)]==0&&Mark[(y-70)/10][(x-100)/10 ]==0) {Draw1_3(x,y);x-=10;Draw1_2(x,y);} else if(key==77&&Mark[(y-100)/10][(x-80)/10]==0&&Mark[(y-90)/10][(x-80) /10]==0&&Mark[(y-80)/10][(x-80)/10]==0&&Mark[(y-70)/10][(x-80)/10] ==0) {Draw1_3(x,y);x+=10;Draw1_2(x,y);} else if(key==32&&Mark[(y-90)/10][(x-100)/10]==0&&Mark[(y-90)/10][(x-80) /10]==0&&Mark[(y-70)/10][(x-70)/10]==0) {Draw1_3(x,y);Control(0,x,y);break;} else if(key==80&&Mark[(y-60)/10][(x-90)/10]==0) {Draw1_3(x,y); while(Mark[(y-60)/10][(x-90)/10]==0) {y+=10; } Draw1_2(x,y); break; } else if(key==27) {return 27;} } Draw1_3(x,y);/*cover the before Up Block*/ y+=10; Draw1_2(x,y); delay(10000000000); } break; case 2:Draw2(x,y);/*?ÔÌï????Àí*/ while(Mark[(y-70)/10][(x-90)/10]==0&&Mark[(y-70)/10][(x-100)/10]==0) { if(kbhit()) {key=getch(); if(key==75&&Mark[(y-90)/10][(x-110)/10]==0&&Mark[(y-80)/10][(x-110)/10]==0) {Draw2_1(x,y);x-=10;Draw2(x,y);} else if(key==77&&Mark[(y-90)/10][(x-80)/10]==0&&Mark[(y-80)/10][(x-80)/10]==0) {Draw2_1(x,y);x+=10;Draw2(x,y);} else if(key==80&&Mark[(y-70)/10][(x-100)/10]==0&&Mark[(y-70)/10][(x-90)/10]==0) {Draw2_1(x,y); while(Mark[(y-70)/10][(x-90)/10]==0&&Mark[(y-70)/10][(x-100)/10]==0) {y+=10; } Draw2(x,y); break; } else if(key==27){return 27;} } Draw2_1(x,y); y+=10; Draw2(x,y); delay(10000000000); } break; case 3:Draw3(x,y); /*left Tian design*/ while(Mark[(y-70)/10][(x-90)/10]==0&&Mark[(y-70)/10][(x-80)/10]==0&&Mark[(y-80)/10][(x-100)/10]==0) { if(kbhit()) {key=getch(); if(key==75&&Mark[(y-90)/10][(x-110)/10]==0&&Mark[(y-80)/10][(x-100)/10]==0) {Draw3_1(x,y);x-=10;Draw3(x,y);} else if(key==77&&Mark[(y-90)/10][(x-80)/10]==0&&Mark[(y-80)/10][(x-70)/10]==0) {Draw3_1(x,y);x+=10;Draw3(x,y);} else if(key==32&&Mark[(y-90)/10][(x-110)/10]==0&&Mark[(y-80)/10][(x-90) /10]==0&&Mark[(y-70)/10][(x-90)/10]==0) {Draw3_1(x,y);Control(4,x,y);break;} else if(key==80&&Mark[(y-80)/10][(x-100)/10]==0&&Mark[(y-80)/10][(x-90) /10]==0&&Mark[(y-80)/10][(x-80)/10]==0&&Mark[(y-80)/10][(x-70)/10] ==0) {Draw1_1(x,y); while(Mark[(y-80)/10][(x-100)/10]==0&&Mark[(y-80)/10][(x-90)/10]== 0&&Mark[(y-80)/10][(x-80)/10]==0&&Mark[(y-80)/10][(x-70)/10]==0) {y+=10; } Draw1(x,y); break; } else if(key==27){return 27;} } Draw1_1(x,y); y+=10; Draw1(x,y); delay(10000000000); } break; case 4:break; case 5:break; case 6:break; } } void Delete() {int y,y1,x; for(y=1;y<=30;y++) {if(Mark[y][12]==10) {for(y1=y;y1>1;y1--) Mark[y1][12]=Mark[y1-1][12]; Mark[1][12]=0; for(y1=y;y1>1;y1--) for(x=1;x<=10;x++) Mark[y1][x]=Mark[y1-1][x]; for(x=1;x<=10;x++) Mark[1][x]=0; setfillstyle(1,BLACK); bar(101,101,199,399); for(y1=1;y1<=30;y1++) for(x=1;x<=10;x++) if(Mark[y1][x]==1) {setfillstyle(1,2); bar(x*10+91,y1*10+91,x*10+99,y1*10+99); } } } } int Gameover() {if(Mark[1][12]>=1&&Mark[2][12]>=1&&Mark[3][12]>=1&&Mark[4][12]>=1 &&Mark[5][12]>=1) return 1; else return 0; } void main() { int gd,gm,CH,NC,OFF=0; gd=DETECT; initgraph(&gd,&gm,""); randomize(); InitMark(); NC=0; Screen(); /*ÆÁÄ?ÉèÖÃ*/ flag=random(3); while(1) { CH=Block(); NC=Control(CH,140,110); /*?ØÖÆÍ?Ðκ?Êý*/ if(NC==27) break; Delete(); OFF=Gameover(); if(OFF) break; } getch(); cleardevice(); closegraph(); }
/
本文档为【俄罗斯方块代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索