所以比較難玩
#include "graphics.h"
#include "stdio.h"
#include "conio.h" /*所需的頭文件*/
int on; /*聲明具有開關作用的全局變量*/
static int score; /*聲明靜態的記分器變量*/
/* 定義開始界面函數*/
int open()
{
setviewport(100,100,500,380,1); /*設置圖形窗口區域*/
setcolor(4); /*設置作圖色*/
rectangle(0,0,399,279); /*以矩形填充所設的圖形窗口區域*/
setfillstyle(SOLID_FILL,7); /*設置填充方式*/
floodfill(50,50,4); /*設置填充範圍*/
setcolor(8);
settextstyle(0,0,9); /*文本字體設置*/
outtextxy(90,80,"BALL"); /*輸出文本內容*/
settextstyle(0,0,1);
outtextxy(110,180,"version 1.0");
outtextxy(110,190,"made by ddt");
setcolor(128);
settextstyle(0,0,1);
outtextxy(120,240,"Press any key to continue......");
}
/*定義退出界面函數*/
int quitwindow()
{
char s[100]; /*聲明用於存放字符串的數組*/
setviewport(100,150,540,420,1);
setcolor(YELLOW);
rectangle(0,0,439,279);
setfillstyle(SOLID_FILL,7);
floodfill(50,50,14);
setcolor(12);
settextstyle(0,0,8);
outtextxy(120,80,"End");
settextstyle(0,0,2);
outtextxy(120,200,"quit? Y/N");
sprintf(s,"Your score is:%d",score);/*格式化輸出記分器的值*/
outtextxy(120,180,s);
on=1; /*初始化開關變量*/
}
/*主函數*/
main()
{
int gdriver,gmode;
gdriver=DETECT; /*設置圖形適配器*/
gmode=0; /*設置圖形模式*/
registerbgidriver(EGAVGA_driver);/* 註冊BGI驅動後可以不需要.BGI文件的支持運行 */
initgraph(&gdriver,&gmode,"");
setbkcolor(14);
open(); /*調用開始界面函數*/
getch(); /*暫停*/
while(1) /*此大循環體控制遊戲的反復重新進行*/
{
int driver,mode,l=320,t=400,r,a,b,dl=5,n,x=200,y=400,r1=10,dx=-2,dy=-2;/*初始化小球相關參數*/
int left[100],top[100],right[100],bottom[100],i,j,k,off=1,m,num[100][100];/*方磚陣列相關參數*/
static int pp;
static int phrase; /*壹系列起開關作用的變量*/
int oop=15;
pp=1;
score=0;
driver=DETECT;
mode=VGA;
registerbgidriver(EGAVGA_driver);
initgraph(&driver,&mode,"");
setbkcolor(10);
cleardevice(); /*圖形狀態下清屏*/
clearviewport(); /*清除現行圖形窗口內容*/
b=t+6;
r=l+60;
setcolor(1);
rectangle(0,0,639,479);
setcolor(4);
rectangle(l,t,r,b);
setfillstyle(SOLID_FILL,1);
floodfill(l+2,t+2,4);
for(i=0,k=0;i<=6;i++) /*此循環繪制方磚陣列*/
{
top[i]=k;
bottom[i]=top[i]+20;
k=k+21;
oop--;
for(j=0,m=0;j<=7;j++)
{
left[j]=m;
right[j]=left[j]+80;
m=m+81;
setcolor(4);
rectangle(left[j],top[i],right[j],bottom[i]);
setfillstyle(SOLID_FILL,j+oop);
floodfill(left[j]+1,top[i]+1,4);
num[i][j]=pp++;
}
}
while(1) /*此循環控制整個動畫*/
{
while(!kbhit())
{
x=x+dx; /*小球運動的圓心變量控制*/
y=y+dy;
if(x+r1>r||x+r1<r)
{ phrase=0;}
if((x-r1<=r||x+r1<=r)&&x+r1>=l)
{
if(y<t)
phrase=1;
if(y+r1>=t&&phrase==1)
{dy=-dy;y=t-1-r1;}
}
if(off==0)
continue;
for(i=0;i<=6;i++) /*此循環用於判斷、控制方磚陣列的撞擊、擦除*/
for(j=0;j<=7;j++)
{
if((x+r1<=right[j]&&x+r1>=left[j])||(x-r1<=right[j]&&x-r1>=left[j]))
{
if(( y-r1>top[i]&&y-r1<=bottom[i])||(y+r1>=top[i]&&y+r1<=bottom[i] ))
{
if(num[i][j]==0)
{continue; }
setcolor(10);
rectangle(left[j],top[i],right[j],bottom[i]);
setfillstyle(SOLID_FILL,10);
floodfill(left[j]+1,top[i]+1,10);
dy=-dy;
num[i][j]=0;
score=score+10;
printf("%d\b\b\b",score);
}
}
if((y+r1>=top[i]&&y+r1<=bottom[i])||(y-r1>=top[i]&&y-r1<=bottom[i]))
{
if((x+r1>=left[j]&&x+r1<right[j])||(x-r1<=right[j]&&x-r1>left[j]))
{
if(num[i][j]==0)
{ continue;}
setcolor(10);
rectangle(left[j],top[i],right[j],bottom[i]);
setfillstyle(SOLID_FILL,10);
floodfill(left[j]+1,top[i]+1,10);
dx=-dx;
num[i][j]=0;
score=score+10;
printf("%d\b\b\b",score);
}
}
}
if(x+r1>639) /*控制小球的彈射範圍*/
{dx=-dx;x=638-r1;}
if(x<=r1)
{dx=-dx;x=r1+1;}
if(y+r1>=479)
{off=0;quitwindow();break;}
if(y<=r1)
{dy=-dy;y=r1+1;}
if(score==560)
{off=0;quitwindow();break;}
setcolor(6);
circle(x,y,r1);
setfillstyle(SOLID_FILL,14);
floodfill(x,y,6);
delay(1000);
setcolor(10);
circle(x,y,r1);
setfillstyle(SOLID_FILL,10);
floodfill(x,y,10);
}
a=getch();
setcolor(10);
rectangle(l,t,r,b);
setfillstyle(SOLID_FILL,10);
floodfill(l+2,t+2,10);
if(a==77&&l<=565) /*鍵盤控制設定*/
{dl=20;l=l+dl;}
if(a==75&&l>=15)
{dl=-20;l=l+dl;}
if(a=='y'&&on==1)
break;
if(a=='n'&&on==1)
break;
if(a==27)
{quitwindow();off=0;}
r=l+60;
setcolor(4);
rectangle(l,t,r,b);
setfillstyle(SOLID_FILL,1);
floodfill(l+5,t+5,4);
delay(100);
}
if(a=='y'&&on==1) /*是否退出遊戲*/
{break;}
if(a=='n'&&on==1)
{ continue;}
}
closegraph();
}
妳不是要求在TC裏運行麽
C++和C不同的
如果要在C++裏
妳前面要寫函數的聲明的
C裏就不用
修改過了,試壹試吧。
我這裏可以
壹閃而過那個是圖形界面的問題
驅動沒安裝好