求用C语言写的壁球游戏源代码,谢谢。

速度和连接板长度不能改变。

所以更难玩了。

#包含“graphics.h”

#包含“stdio.h”

#include "conio.h" /*必需的头文件*/

int on/*用切换函数声明一个全局变量*/

静态int分数;/*声明静态计分器变量*/

/*定义启动接口函数*/

int open()

{

setviewport(100,100,500,380,1);/*设置图形窗口区域*/

set color(4);/*设置绘图颜色*/

矩形(0,0,399,279);/*用矩形填充设定的图形窗口区域*/

setfillstyle(SOLID_FILL,7);/*设置填充方法*/

洪水填充(50,50,4);/*设置填充范围*/

set color(8);

settextstyle(0,0,9);/*文本字体设置*/

outtextxy(90,80,“球”);/*输出文本内容*/

settextstyle(0,0,1);

outtextxy(110,180,“版本1.0”);

outtextxy(110,190,“滴滴涕制造”);

set color(128);

settextstyle(0,0,1);

outtextxy(120,240,"按任意键继续……");

}

/*定义退出接口函数*/

int quitwindow()

{

char s[100];/*声明用于存储字符串的数组*/

setviewport(100,150,540,420,1);

setcolor(黄色);

矩形(0,0,439,279);

setfillstyle(SOLID_FILL,7);

漫填(50,50,14);

set color(12);

settextstyle(0,0,8);

outtextxy(120,80," End ");

settextstyle(0,0,2);

outtextxy(120,200,“退出?y/N”);

sprintf(s,“你的分数是:%d”,分数);/*打印格式计分器的值*/

outtextxy(120,180,s);

on = 1;/*初始化开关变量*/

}

/*主函数*/

主()

{

int gdriver,gmode

gdriver = DETECT/*设置图形适配器*/

gmode = 0;/*设置图形模式*/

registerbgidriver(EGA VGA _ driver);/*注册BGI驱动程序后,它可以在没有支持的情况下运行。BGI文件*/

init graph(& amp;g driver & amp;gmode,“”;

setbkcolor(14);

open();/*调用启动接口函数*/

getch();/*暂停*/

而(1) /*这个大循环控制着游戏的重复进行*/

{

int驱动,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];/*方砖阵列的相关参数*/

静态int pp

静态int短语;/*一系列充当开关的变量*/

int OOP = 15;

PP = 1;

得分= 0;

驱动=检测;

mode = VGA

registerbgidriver(EGA VGA _ driver);

init graph(& amp;司机& amp模式,“”;

setbkcolor(10);

clear device();/*在图形状态下清除屏幕*/

clear viewport();/*清除当前图形窗口的内容*/

b = t+6;

r = l+60;

set color(1);

矩形(0,0,639,479);

set color(4);

矩形(l,t,r,b);

setfillstyle(SOLID_FILL,1);

洪水填充(l+2,t+2,4);

for(i=0,k = 0;我& lt=6;I++) /*此循环绘制一个方形砖块数组*/

{

top[I]= k;

bottom[I]= top[I]+20;

k = k+21;

OOP-;

for(j=0,m = 0;j & lt=7;j++)

{

left[j]= m;

右[j]=左[j]+80;

m = m+81;

set color(4);

矩形(左[j],上[i],右[j],下[I]);

setfillstyle(SOLID_FILL,j+OOP);

floodfill(left[j]+1,top[i]+1,4);

num[I][j]= pp++;

}

}

While(1) /*该循环控制整个动画*/

{

而(!kbhit())

{

x = x+dx;/*球运动的中心可变控制*/

y = y+dy;

if(x+r 1 & gt;r | | x+r 1 & lt;r)

{ phrase = 0;}

if((x-r 1 & lt;= r | | x+r 1 & lt;= r)& amp;& ampx+r 1 & gt;=l)

{

if(y & lt;t)

phrase = 1;

if(y+r 1 & gt;= t & amp& amp短语==1)

{ dy =-dy;y = t-1-r 1;}

}

if(off==0)

继续;

for(I = 0;我& lt=6;I++) /*此循环用于判断和控制方块砖数组的冲击和擦除*/

for(j = 0;j & lt=7;j++)

{

if((x+r 1 & lt;= right[j]& amp;& ampx+r 1 & gt;= left[j])| |(x-r 1 & lt;= right[j]& amp;& ampx-r 1 & gt;=left[j]))

{

if((y-r 1 & gt;top[I]& amp;& ampy-r 1 & lt;= bottom[I])| |(y+r 1 & gt;= top[I]& amp;& ampy+r 1 & lt;=bottom[i])

{

if(num[i][j]==0)

{继续;}

set color(10);

矩形(左[j],上[i],右[j],下[I]);

setfillstyle(SOLID_FILL,10);

floodfill(左[j]+1,上[i]+1,10);

dy =-dy;

num[I][j]= 0;

得分=分数+10;

printf("%d\b\b\b ",分数);

}

}

if((y+r 1 & gt;= top[I]& amp;& ampy+r 1 & lt;= bottom[I])| |(y-r 1 & gt;= top[I]& amp;& ampy-r 1 & lt;=bottom[i])

{

if((x+r 1 & gt;= left[j]& amp;& ampx+r 1 & lt;right[j])| |(x-r 1 & lt;= right[j]& amp;& ampx-r 1 & gt;左[j]))

{

if(num[i][j]==0)

{继续;}

set color(10);

矩形(左[j],上[i],右[j],下[I]);

setfillstyle(SOLID_FILL,10);

floodfill(左[j]+1,上[i]+1,10);

dx =-dx;

num[I][j]= 0;

得分=分数+10;

printf("%d\b\b\b ",分数);

}

}

}

if(x+r 1 & gt;639) /*控制球的弹出范围*/

{ dx =-dx;x = 638-r 1;}

if(x & lt;=r1)

{ dx =-dx;x = r 1+1;}

if(y+r 1 & gt;=479)

{ off = 0;quit window();打破;}

if(y & lt;=r1)

{ dy =-dy;y = r 1+1;}

如果(分数==560)

{ off = 0;quit window();打破;}

set color(6);

circle(x,y,r 1);

setfillstyle(SOLID_FILL,14);

floodfill(x,y,6);

延时(1000);

set color(10);

circle(x,y,r 1);

setfillstyle(SOLID_FILL,10);

floodfill(x,y,10);

}

a = getch();

set color(10);

矩形(l,t,r,b);

setfillstyle(SOLID_FILL,10);

漫填(l+2,t+2,10);

if(a = = 77 & amp;& ampl & lt=565) /*键盘控制设置*/

{ dl = 20l = l+dl;}

if(a = = 75 & amp;& ampl & gt=15)

{ dl =-20;l = l+dl;}

if(a = = ' y ' & amp;& ampon==1)

打破;

if(a = = ' n ' & amp;& ampon==1)

打破;

如果(a==27)

{ quit window();关= 0;}

r = l+60;

set color(4);

矩形(l,t,r,b);

setfillstyle(SOLID_FILL,1);

漫填(l+5,t+5,4);

延时(100);

}

if(a = = ' y ' & amp;& ampOn==1) /*是否要退出游戏*/

{ break}

if(a = = ' n ' & amp;& ampon==1)

{继续;}

}

closegraph();

}

你不是要求在TC运行吗

C++和c不一样。

如果你想在C++中

你必须先写函数的声明。

不是c调的。

已经修改过了。试试看。

我可以在这里做。

那是一闪而过的图形界面问题。

驱动程序安装不正确。