收藏 分销(赏)

挡板球(小游戏).doc

上传人:xrp****65 文档编号:6513865 上传时间:2024-12-10 格式:DOC 页数:5 大小:35.50KB 下载积分:10 金币
下载 相关 举报
挡板球(小游戏).doc_第1页
第1页 / 共5页
挡板球(小游戏).doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
#include<math.h> #include<graphics.h> #include<bios.h> #include<dos.h> #include<malloc.h> #include<stdio.h> #include<conio.h> #include<stdlib.h> #define LEFT 0x4b00 #define RIGHT 0x4d00 #define ESC 0x11b #define Enter 0x1c0d unsigned long int flag[11][10]={0},score=0; enum spd { s1=10, s2=8,s3=6,s4=4,s5=2,s6=0 }gamespeed; void chose() {int i; textmode(2); printf("\n\n\n\n Please Input The Speed You Want(from 1 to 6):"); scanf("%d",&i); switch(i) { case 1: gamespeed=s1;printf(" Thank You!! Wish You Have A Happy Day");for(;!kbhit();); break; case 2: gamespeed=s2;printf(" Thank You!! Wish You Have A Happy Day");for(;!kbhit();); break; case 3: gamespeed=s3;printf(" Thank You!! Wish You Have A Happy Day");for(;!kbhit();); break; case 4: gamespeed=s4;printf(" Thank You!! Wish You Have A Happy Day");for(;!kbhit();); break; case 5: gamespeed=s5;printf(" Thank You!! Wish You Have A Happy Day");for(;!kbhit();); break; case 6: gamespeed=s6;printf(" Thank You!! Wish You Have A Happy Day");for(;!kbhit();); break; default: printf(" Oh!! My God! Please Check The Number! Is it bewtten 1 and 6 ??");for(;!kbhit(););exit(0); } } int init() { auto int gdriver=DETECT,gmode,i,j; /* registerbgifont(); */ registerbgidriver(EGAVGA_driver); initgraph(&gdriver,&gmode,"E:\\tcpp\\bgi"); setbkcolor(9);setcolor(5);setlinestyle(0,0,3); for(i=0;i<=10;i++) { int c=i;if(c==9)c=3; for(j=0;j<=9;j++) { setfillstyle(1,c);c++;if(c==9)c=6; rectangle(j*60+15,20*i,60*j+75,20*i+20),flag[i][j]=1; floodfill(j*60+20,20*i+10,5); } }setfillstyle(1,15);floodfill(20,10,5);floodfill(380,210,5); setlinestyle(0,0,1); setfillstyle(1,BLUE); rectangle(50,460,110,480);floodfill(60,470,5); return 0; } int daba() { static int x=50; if(!kbhit())return 0; else {int key; key=bioskey(0); switch(key) { case LEFT:setfillstyle(1,9);floodfill(x+10,470,5);setcolor(9);rectangle(x,460,x+60,480); setcolor(5);setfillstyle(1,BLUE); if(x<=9){rectangle(0,460,60,480);floodfill(40,470,5);x=0;}else{rectangle(x-10,460,x+50,480);floodfill(x+20,470,5);x-=10;}return 1; case RIGHT:setfillstyle(1,9);floodfill(x+10,470,5);setcolor(9);rectangle(x,460,x+60,480); setcolor(5);setfillstyle(1,BLUE); if(x>=579){rectangle(579,460,639,480);floodfill(600,470,5);x=579;}else{rectangle(x+10,460,x+70,480);floodfill(x+30,470,5);x+=10; }return 1; case ESC: return 2; default: return 0; } } return 0; } int Juge(int &direction,int x,int y) {int i,j,k; if(y>=240) return 0; switch(direction) { case 1: for(k=0;k<=10&&fabs(y-41-20*k)>=3;k++);i=k;if(i==11)return 0;for(k=0;k<=9&&!(x>=60*k-5&&x<=60*k+95);k++);j=k; if(flag[i][j]==1){setlinestyle(0,0,3);setcolor(9);setfillstyle(1,9);floodfill(60*j+20,20*i+10,5);rectangle(60*j+15,20*i,60*j+75,20*i+20);score+=1;setcolor(5); if(j>=1&&flag[i][j-1]!=0)rectangle(60*j+15-60,20*i,60*j+15,20*i+20);if(j==0&&flag[i][j+1]!=0)rectangle(15,20*i,75,20*i+20);if(j==9&&flag[i][j-1]!=0)rectangle(60*9+15,20*i,60*9+75,20*i+20);if(j<=8&&flag[i][j+1]!=0)rectangle(60*j+75,20*i,60*j+75+60,20*i+20);if(i>=1&&flag[i-1][j]!=0)rectangle(60*j+15,20*i-20,60*j+75,20*i);flag[i][j]=0;direction=-2;return 1;} else if(flag[i][j-1]==0)return 0;else if(x>=60*j+15+8)return 0;else{direction=-2;return 1;} case 2: for(k=0;k<=10&&fabs(y-41-20*k)>=3;k++);i=k;if(i==11)return 0;for(k=0;k<=9&&!(x>=60*k-5&&x<=60*k+95);k++);j=k; if(flag[i][j]==1){setlinestyle(0,0,3);score+=1;setcolor(9);setfillstyle(1,9);floodfill(60*j+20,20*i+10,5);rectangle(60*j+15,20*i,60*j+75,20*i+20);flag[i][j]=0;direction=-1;setcolor(5);if(j==0&&flag[i][j+1]!=0)rectangle(15,20*i,75,20*i+20);if(j==9&&flag[i][j-1]!=0)rectangle(60*9+15,20*i,60*9+75,20*i+20);if(j>=1&&flag[i][j-1]!=0)rectangle(60*j+15-60,20*i,60*j+15,20*i+20);if(j<=8&&flag[i][j+1]!=0)rectangle(60*j+75,20*i,60*j+75+60,20*i+20);if(i>=1&&flag[i-1][j]!=0)rectangle(60*j+15,20*i-20,60*j+75,20*i); return 1;} else if(flag[i][j+1]==0)return 0;else if(x<=60*j+15-8)return 0;else{direction=-1;return 1;} case -1:for(k=2;k<=10&&fabs(y+20-20*k)>=2;k++);i=k;if(i==11)return 0;for(k=0;k<=9&&!(x>=60*k-5&&x<=60*k+95);k++);j=k; if(flag[i][j]==1){setlinestyle(0,0,3);setcolor(9);setfillstyle(1,9);floodfill(60*j+20,20*i+10,5);rectangle(60*j+15,20*i,60*j+75,20*i+20);score+=1;setcolor(5); if(j>=1&&flag[i][j-1]!=0)rectangle(60*j+15-60,20*i,60*j+15,20*i+20);if(j==0&&flag[i][j+1]!=0)rectangle(15,20*i,75,20*i+20);if(j==9&&flag[i][j-1]!=0)rectangle(60*9+15,20*i,60*9+75,20*i+20);if(j<=8&&flag[i][j+1]!=0)rectangle(60*j+75,20*i,60*j+75+60,20*i+20);if(i<=8&&flag[i+1][j]!=0)rectangle(60*j+15,20*i-20,60*j+75,20*i); flag[i][j]=0;direction=2;return 1; } else if(flag[i][j+1]==0&&flag[i][j-1]==0)return 0;else if(x<=60*i+15-68)return 0;else {direction=2;return 1;} case -2:for(k=2;k<=10&&fabs(y+20-20*k)>=2;k++);i=k;if(i==11)return 0;for(k=0;k<=9&&!(x>=60*k-5&&x<=60*k+95);k++);j=k; if(flag[i][j]==1){setlinestyle(0,0,3);setcolor(9);setfillstyle(1,9);floodfill(60*j+20,20*i+10,5);rectangle(60*j+15,20*i,60*j+75,20*i+20);score+=1;setcolor(5); if(j>=1&&flag[i][j-1]!=0)rectangle(60*j+15-60,20*i,60*j+15,20*i+20);if(j==0&&flag[i][j+1]!=0)rectangle(15,20*i,75,20*i+20);if(j==9&&flag[i][j-1]!=0)rectangle(60*9+15,20*i,60*9+75,20*i+20);if(j<=8&&flag[i][j+1]!=0)rectangle(60*j+75,20*i,60*j+75+60,20*i+20);if(i<=8&&flag[i+1][j]!=0)rectangle(60*j+15,20*i-20,60*j+75,20*i); flag[i][j]=0;direction=2;return 1; } else if(flag[i][j+1]==0&&flag[i][j-1]==0)return 0;else if(x<=60*i+15-68)return 0;else {direction=2;return 1;} } return 0; } int play() {int key,x=50,x0=80,y0=436,direction;char *s; void*buf1;randomize();direction=rand()%1+1; setcolor(5);circle(x0,y0,20);setfillstyle(1,8);floodfill(x0,y0,5); buf1=malloc(imagesize(59,415,102,458));getimage(59,415,102,458,buf1); while(1) { while(!kbhit()) {swi:switch(direction) { case 1:for(;y0>=21&&x0>=21;x0--,y0--) {if(kbhit())goto loop;delay(gamespeed); if(Juge(direction,x0,y0)!=0)goto swi; putimage(x0-22,y0-22,buf1,0); }x0++,y0++;if(x0==21)direction=2;else direction=-2;break; case 2:for(;x0<=617&&y0>=21;x0++,y0--) {if(kbhit())goto loop;delay(gamespeed); if(Juge(direction,x0,y0)!=0)goto swi; putimage(x0-22,y0-22,buf1,0); }x0--,y0++;if(x0==617)direction=1;else direction=-1; break; case -1:for(;x0<=617&&y0<=436;x0++,y0++) {if(kbhit())goto loop;delay(gamespeed); if(Juge(direction,x0,y0)!=0)goto swi; putimage(x0-22,y0-22,buf1,0); }x0--,y0--;if(y0==436){if(x0+20>=x&&x0-20<=x+60)direction=2;else{ for(;y0<=500;y0++,x0++){delay(gamespeed); putimage(x0-22,y0-22,buf1,0);} return 0;} }else direction=-2; break; case -2:for(;x0>=21&&y0<=436;x0--,y0++) {if(kbhit())goto loop;delay(gamespeed); if(Juge(direction,x0,y0)!=0)goto swi; putimage(x0-22,y0-22,buf1,0); }x0++,y0--;if(y0==436){if(x0+20>=x&&x0-20<=x+60) direction=1;else{ for(;y0<=500;y0++,x0--){delay(gamespeed); putimage(x0-22,y0-22,buf1,0);} return 0;} }else direction=-1; break; } }loop: key=bioskey(0); switch(key) { case LEFT:setfillstyle(1,9);floodfill(x+10,470,5);setcolor(9);rectangle(x,460,x+60,480);bar(x,460,x+60,480); setcolor(5);setfillstyle(1,BLUE); if(x<=9){sprintf(s,"%d",score);outtextxy(10,470,s); rectangle(0,460,60,480);floodfill(40,470,5);x=0;}else{sprintf(s,"%d",score);outtextxy(x,470,s); rectangle(x-10,460,x+50,480);floodfill(x+20,470,5);x-=10;}break; case RIGHT:setfillstyle(1,9);floodfill(x+10,470,5);setcolor(9);rectangle(x,460,x+60,480);bar(x,460,x+60,480); setcolor(5);setfillstyle(1,BLUE); if(x>=579){sprintf(s,"%d",score);outtextxy(589,470,s); rectangle(579,460,639,480);floodfill(600,470,5);x=579;}else{sprintf(s,"%d",score);outtextxy(x+20,470,s);rectangle(x+10,460,x+70,480);floodfill(x+30,470,5);x+=10; }break; case ESC: break; default: break; }if(key==ESC)break; }return 0; } int main() { chose(); init(); play(); getch(); closegraph(); return 0; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服