#include<dos.h> #include<math.h> #include<bios.h> #include<stdio.h> #include<conio.h> #include<graphics.h> #define UP 1 #define DOWN 2 #define LEFT 3 #define RIGHT 4 #define N 10 #define WALL 1 #define BEAN 0 #define EMPTY -1 #define SIDE 480/N #define PI 3.141592653 void initscene(void); void init(void); void draw(void); void initCircle(void); void movingCircle(void); void moveCircle(void); void clearCircle(void); void drawCircle(void); void GameOver(void); void PrScore(void); int score=0; int direction; int isOver; int scene[10][10]; int a,b,c,d,i,k,x,y,radius,j,key,x,y,N1,running; char buffer[100]; int main() { init(); initscene(); draw(); drawCircle(); movingCircle(); closegraph(); return 0; } void init() { int gdriver,gmode; gdriver=DETECT; initgraph(&gdriver,&gmode,"."); setbkcolor(BLACK); } void initscene() { FILE *fp; fp=fopen("E:\\123.txt","r+"); fscanf(fp,"%d,%d,%d,%d\n",&a,&b,&c,&d); i=0; while((fgets(buffer,100,fp))!=NULL) { for(k=0;buffer[k]!='\n';k++) { scene[i][k]=buffer[k]-'0'; } i++; } } void draw() { for(k=0;k<10;k++) { for(i=0;i<10;i++) { if(scene[i][k]==1) { setfillstyle(1,GREEN); setcolor(BLUE); rectangle(48*k,48*i,48*(k+1),48*(i+1)); floodfill(48*k+1,48*i+1,BLUE); } if(scene[i][k]==0) { setfillstyle(1,WHITE); setcolor(WHITE); circle(48*k+24,48*i+24,10); floodfill(48*k+23,48*i+23,WHITE); } } } getch(); } int x=70; int y=70; int radius=20; void initCircle() { direction=RIGHT; isOver=0; } void movingCircle() { while(!isOver) { drawCircle(); for(i=0;i<10;i++) delay(10000); while(bioskey(1)) { key=bioskey(0); switch(key) { case 0x4800:direction=UP; break; case 0x5000:direction=DOWN; break; case 0x4b00:direction=LEFT; break; case 0x4d00:direction=RIGHT; break; case 0x011b:isOver=1; break; } } clearCircle(); moveCircle(); } getch(); } void drawCircle() { switch(direction) { case RIGHT: setcolor(RED); setfillstyle(1,BLUE); arc(x,y,30,330,radius); line(x,y,x+20*cos(PI/6),y-20*sin(PI/6)); line(x,y,x+20*cos(PI/4),y+20*sin(PI/6)); break; case UP: setcolor(RED); setfillstyle(1,BLUE); arc(x,y,150,30,radius); line(x,y,x-20*cos(PI/6),y-20*sin(PI/6)); line(x,y,x+20*cos(PI/4),y-20*sin(PI/6)); break; case LEFT: setcolor(RED); setfillstyle(1,BLUE); arc(x,y,210,150,radius); line(x,y,x-20*cos(PI/6),y+20*sin(PI/6)); line(x,y,x-20*cos(PI/4),y-20*sin(PI/6)); break; case DOWN: setcolor(RED); arc(x,y,330,210,radius); setfillstyle(1,BLUE); line(x,y,x+20*cos(PI/6),y+20*sin(PI/6)); line(x,y,x-20*cos(PI/4),y+20*sin(PI/6)); break; } } void clearCircle() { switch(direction) { case RIGHT: setcolor(BLACK); setfillstyle(1,BLACK); bar(x-15,y-20,x+20,y+20); arc(x,y,30,330,radius); line(x,y,x+20*cos(PI/6),y-20*sin(PI/6)); line(x,y,x+20*cos(PI/4),y+20*sin(PI/6)); break; case UP: setcolor(BLACK); setfillstyle(1,BLACK); bar(x-20,y-20,x+20,y+20); arc(x,y,30,330,radius); line(x,y,x-20*cos(PI/6),y-20*sin(PI/6)); line(x,y,x+20*cos(PI/4),y-20*sin(PI/6)); break; case LEFT: setcolor(BLACK); setfillstyle(1,BLACK); bar(x-20,y-20,x+20,y+20); arc(x,y,30,330,radius); line(x,y,x-20*cos(PI/6),y+20*sin(PI/6)); line(x,y,x-20*cos(PI/4),y-20*sin(PI/6)); break; case DOWN: setcolor(BLACK); setfillstyle(1,BLACK); bar(x-20,y-20,x+20,y+20); arc(x,y,30,330,radius); line(x,y,x+20*cos(PI/6),y+20*sin(PI/6)); line(x,y,x-20*cos(PI/4),y+20*sin(PI/6)); break; } score+=10; PrScore(); } void PrScore(void) { char str[10]; setfillstyle(SOLID_FILL,YELLOW); bar(475,425,620,445); setcolor(6); settextstyle(0,0,2); sprintf(str,"score:%d",score); outtextxy(480,430,str); } void moveCircle() { switch(direction) { case UP: y-=48; break; case DOWN:y+=48; break; case LEFT:x-=48; break; case RIGHT:x+=48; break; } if((x>=24&&x<=456)&&(y>=24&&y<=456)) isOver=0; else isOver=1; } void GameOver() { cleardevice(); PrScore(); setcolor(RED); settextstyle(0,0,4); outtextxy(200,200,"GAME OVER"); getch(); }
- 粉丝: 12
- 资源: 15
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助