弹力球游戏c语言代码

#include

#include

#include

#include

/*定义游戏级别*/

#define ELEMENTARY 15 /*初级*/

#define INTERMEDIATE 8/*中级*/

#define ADVANCED 3/*高级*/

#define R 5 /*球半径*/

struct box

{

int x;

int y;

int color;

}a[6][14];

int delaytime = 30;/*表示球的移动速度,今而表示游戏的级别*/

int MouseX;

int MouseY=400;

int dx=1,dy=1; /*计算球的反弹*/

int sizex=18,sizey=10; /*box的宽度和长度*/

void InitGraphics()

{

int gdriver = DETECT,gmode;

initgraph(&gdriver,&gmode,"c:\\tc");

}

void InitGame()

{

int grade;

gotoxy(20,3);

printf("Welcome to the Game of Striking ball\n\n");

gotoxy(20,5);

printf("please input the grade you want to play:");

gotoxy(20,6);

printf(" 1: elementary \n");

gotoxy(20,7);

printf(" 2: intermediate \n");

gotoxy(20,8);

printf(" 3: advanded \n");

scanf("%d",grade);

switch(grade)

{

case 1 :

delaytime = ELEMENTARY;break;

case 2 :

delaytime = INTERMEDIATE;break;

case 3 :

delaytime = ADVANCED;break;

default:

delaytime = ELEMENTARY;break;

}

}

void DrawBox(int x,int y) /* x, y为左上角坐标sizex,sizey 为长和宽*/

{

int sizx=sizex-1;

int sizy=sizey-1;

setcolor(15);

line(x,y,x+sizx-1,y);

line(x,y+1,x+sizx-2,y+1);

line(x,y,x,y+sizy-1);

line(x+1,y,x+1,y+sizy-2);

setcolor(8);

line(x+1,y+sizy,x+sizx,y+sizy);

line(x+2,y+sizy-1,x+sizx,y+sizy-1);

line(x+sizx-1,y+1,x+sizx-1,y+sizy);

line(x+sizx,y+2,x+sizx,y+sizy);

setcolor(7);

putpixel(x,y+sizy,3);

putpixel(x+1,y+sizy-1,3);

putpixel(x+sizx,y,3);

putpixel(x+sizx-1,y+1,3);

setfillstyle(1, 7);

bar(x+2,y+2,x+sizx-2,y+sizy-2);

}

/*绘制游戏界面*/

void DrawInterface()

{

int i,j;

cleardevice();

setcolor(15);

rectangle(99,49,413,451);

for(i=0;i

for(j=0;j

{

a[i][j].color=0;

a[i][j].x=104+j*22;

a[i][j].y=54+i*14;

DrawBox(104+j*22,54+i*14);

}

sizex=50,sizey=5;

}

/*鼠标光标显示*/

void DrawMouse(int x,int y)

{

DrawBox(x,y);

}

/*设置鼠标左右边界*/

void MouseSetX(int lx,int rx)

{

_CX=lx;

_DX=rx;

_AX=0x07;

geninterrupt(0x33);

}

/*设置鼠标上下边界*/

void MouseSetMaxY(int uy,int dy)

{

_CX=uy;

_DX=dy;

_AX=0x08;

geninterrupt(0x33);

}

/*设置鼠标当前位置*/

void MouseSetXY(int x,int y)

{

_CX=x;

_DX=y;

_AX=0x04;

geninterrupt(0x33);

}

/*获取鼠标当前位置*/

void MouseGetXY()

{

_AX=0x03;

geninterrupt(0x33);

MouseX=_CX;

MouseY=_DX;

}

void MouseStatus()/*鼠标按键情况*/

{

int x;

int status;

status=0;/*默认鼠标没又移动*/

x=MouseX;

if(x==MouseX&&status==0) /*鼠标没动*/

{

MouseGetXY();

if(MouseX!=x)

if(MouseX+50

status=1;

}

if(status)/*移动情况才重新显示鼠标*/

{

setfillstyle(1,0);

bar(x,MouseY,x+sizex,MouseY+sizey);

DrawMouse(MouseX,MouseY);/*新位置显示*/

}

}

void BallStrike()

{

int ballX; /*球的圆心*/

int ballY = MouseY-R;

int i,j,t=0;

randomize();

while(ballX=random(409))

if(ballX>=105 && ballX

break;

while(kbhit)

{

MouseStatus();

if(ballY

dy*=(-1);

if(ballX>=(413-R)||ballX

dx*=(-1);

setcolor(WHITE);

circle(ballX+=dx,ballY-=dy,R-1);

delay(delaytime);

setcolor(0);

circle(ballX,ballY,R-1);

for(i=0;i

for(j=0;j

if(t=a[i][j].x && ballX

&& ballY>=a[i][j].y && ballY

{

t++;

dy*=(-1);

a[i][j].color=1;

setfillstyle(1,0);

bar(a[i][j].x,a[i][j].y,a[i][j].x+18,a[i][j].y+10);

}

if(ballX==MouseX||ballX==MouseX-1||ballX==MouseX-2&&ballX==(MouseX+50+2)||ballX==(MouseX+50+1)||ballX==(MouseX+50)) /*碰板反弹*/

if(ballY>=(MouseY-R))

{

dx*=(-1);

dy*=(-1); /*原路返回*/

}

if(ballX>MouseX && ballX

if(ballY>=(MouseY-R))

dy*=(-1);

if(t==84)

{

sleep(1);

cleardevice();

setcolor(RED);

settextstyle(0,0,4);

outtextxy(100,200,"You Win");

sleep(1);

break;

}

if(ballY>MouseY)

{

sleep(1);

cleardevice();

setcolor(RED);

settextstyle(0,0,4);

outtextxy(100,200,"Game Over");

sleep(1);

break;

}

}

}

void main()

{

InitGraphics();

InitGame();

DrawInterface();

MouseSetX(100,362); /*设置鼠标移动的范围*/ MouseSetMaxY(MouseY,MouseY); /*鼠标只能左右移动*/ MouseSetXY(150,MouseY); /*鼠标的初始位置*/ DrawMouse(MouseX,MouseY); /*第一次显示鼠标*/ BallStrike();

closegraph();

}

#include

#include

#include

#include

/*定义游戏级别*/

#define ELEMENTARY 15 /*初级*/

#define INTERMEDIATE 8/*中级*/

#define ADVANCED 3/*高级*/

#define R 5 /*球半径*/

struct box

{

int x;

int y;

int color;

}a[6][14];

int delaytime = 30;/*表示球的移动速度,今而表示游戏的级别*/

int MouseX;

int MouseY=400;

int dx=1,dy=1; /*计算球的反弹*/

int sizex=18,sizey=10; /*box的宽度和长度*/

void InitGraphics()

{

int gdriver = DETECT,gmode;

initgraph(&gdriver,&gmode,"c:\\tc");

}

void InitGame()

{

int grade;

gotoxy(20,3);

printf("Welcome to the Game of Striking ball\n\n");

gotoxy(20,5);

printf("please input the grade you want to play:");

gotoxy(20,6);

printf(" 1: elementary \n");

gotoxy(20,7);

printf(" 2: intermediate \n");

gotoxy(20,8);

printf(" 3: advanded \n");

scanf("%d",grade);

switch(grade)

{

case 1 :

delaytime = ELEMENTARY;break;

case 2 :

delaytime = INTERMEDIATE;break;

case 3 :

delaytime = ADVANCED;break;

default:

delaytime = ELEMENTARY;break;

}

}

void DrawBox(int x,int y) /* x, y为左上角坐标sizex,sizey 为长和宽*/

{

int sizx=sizex-1;

int sizy=sizey-1;

setcolor(15);

line(x,y,x+sizx-1,y);

line(x,y+1,x+sizx-2,y+1);

line(x,y,x,y+sizy-1);

line(x+1,y,x+1,y+sizy-2);

setcolor(8);

line(x+1,y+sizy,x+sizx,y+sizy);

line(x+2,y+sizy-1,x+sizx,y+sizy-1);

line(x+sizx-1,y+1,x+sizx-1,y+sizy);

line(x+sizx,y+2,x+sizx,y+sizy);

setcolor(7);

putpixel(x,y+sizy,3);

putpixel(x+1,y+sizy-1,3);

putpixel(x+sizx,y,3);

putpixel(x+sizx-1,y+1,3);

setfillstyle(1, 7);

bar(x+2,y+2,x+sizx-2,y+sizy-2);

}

/*绘制游戏界面*/

void DrawInterface()

{

int i,j;

cleardevice();

setcolor(15);

rectangle(99,49,413,451);

for(i=0;i

for(j=0;j

{

a[i][j].color=0;

a[i][j].x=104+j*22;

a[i][j].y=54+i*14;

DrawBox(104+j*22,54+i*14);

}

sizex=50,sizey=5;

}

/*鼠标光标显示*/

void DrawMouse(int x,int y)

{

DrawBox(x,y);

}

/*设置鼠标左右边界*/

void MouseSetX(int lx,int rx)

{

_CX=lx;

_DX=rx;

_AX=0x07;

geninterrupt(0x33);

}

/*设置鼠标上下边界*/

void MouseSetMaxY(int uy,int dy)

{

_CX=uy;

_DX=dy;

_AX=0x08;

geninterrupt(0x33);

}

/*设置鼠标当前位置*/

void MouseSetXY(int x,int y)

{

_CX=x;

_DX=y;

_AX=0x04;

geninterrupt(0x33);

}

/*获取鼠标当前位置*/

void MouseGetXY()

{

_AX=0x03;

geninterrupt(0x33);

MouseX=_CX;

MouseY=_DX;

}

void MouseStatus()/*鼠标按键情况*/

{

int x;

int status;

status=0;/*默认鼠标没又移动*/

x=MouseX;

if(x==MouseX&&status==0) /*鼠标没动*/

{

MouseGetXY();

if(MouseX!=x)

if(MouseX+50

status=1;

}

if(status)/*移动情况才重新显示鼠标*/

{

setfillstyle(1,0);

bar(x,MouseY,x+sizex,MouseY+sizey);

DrawMouse(MouseX,MouseY);/*新位置显示*/

}

}

void BallStrike()

{

int ballX; /*球的圆心*/

int ballY = MouseY-R;

int i,j,t=0;

randomize();

while(ballX=random(409))

if(ballX>=105 && ballX

break;

while(kbhit)

{

MouseStatus();

if(ballY

dy*=(-1);

if(ballX>=(413-R)||ballX

dx*=(-1);

setcolor(WHITE);

circle(ballX+=dx,ballY-=dy,R-1);

delay(delaytime);

setcolor(0);

circle(ballX,ballY,R-1);

for(i=0;i

for(j=0;j

if(t=a[i][j].x && ballX

&& ballY>=a[i][j].y && ballY

{

t++;

dy*=(-1);

a[i][j].color=1;

setfillstyle(1,0);

bar(a[i][j].x,a[i][j].y,a[i][j].x+18,a[i][j].y+10);

}

if(ballX==MouseX||ballX==MouseX-1||ballX==MouseX-2&&ballX==(MouseX+50+2)||ballX==(MouseX+50+1)||ballX==(MouseX+50)) /*碰板反弹*/

if(ballY>=(MouseY-R))

{

dx*=(-1);

dy*=(-1); /*原路返回*/

}

if(ballX>MouseX && ballX

if(ballY>=(MouseY-R))

dy*=(-1);

if(t==84)

{

sleep(1);

cleardevice();

setcolor(RED);

settextstyle(0,0,4);

outtextxy(100,200,"You Win");

sleep(1);

break;

}

if(ballY>MouseY)

{

sleep(1);

cleardevice();

setcolor(RED);

settextstyle(0,0,4);

outtextxy(100,200,"Game Over");

sleep(1);

break;

}

}

}

void main()

{

InitGraphics();

InitGame();

DrawInterface();

MouseSetX(100,362); /*设置鼠标移动的范围*/ MouseSetMaxY(MouseY,MouseY); /*鼠标只能左右移动*/ MouseSetXY(150,MouseY); /*鼠标的初始位置*/ DrawMouse(MouseX,MouseY); /*第一次显示鼠标*/ BallStrike();

closegraph();

}


相关内容

  • 企业拓展培训游戏
  • 人众人集训游戏 破冰游戏 游戏简介: 主持人事先准备好印有两个企业名称的卡片,卡片上标明"原有企业成员"或者"人才"字样.每组分别3张原有企业成员卡,代表公司开始的负责人,主要负责接下来的招聘人才的工作:人才分为1星到4星不等,每个星星代表薪酬1000元,既4 ...

  • 员工拓展培训游戏集合
  • 人众人员工拓展培训游戏集合 破冰游戏 游戏简介: 主持人事先准备好印有两个企业名称的卡片,卡片上标明"原有企业成员"或者"人才"字样.每组分别3张原有企业成员卡,代表公司开始的负责人,主要负责接下来的招聘人才的工作:人才分为1星到4星不等,每个星星代表薪酬10 ...

  • 大班教育教学第十七周
  • 上午班 月 星期 活 动 计 划 (包括生活活动.教学活动.游戏活动.户外运动等) 生活活动集体指导:如厕时会根据大小便拿纸擦屁股 生活活动个别重点指导:陈怡然有大便会自己拿纸擦 户外活动: 小转椅 活动目标:1. 乐意与同伴合作游戏,体验旋转游戏的乐趣 2.学习小转椅游戏的玩法,闭眼踮起脚尖转 3 ...

  • 第二周教案
  • 第 二 周 课 程 一. 教学名称: 塞球 二.教学目标: 1. 训练宝宝塞的动作,增加宝宝学习的兴趣. 2. 训练宝宝手眼协调能力,以及宝宝的专注力 3. 为练习"插"的工作打下基础 三.教具构成: 1.手纸桶1个 2.筐一个 3.弹力球8个,塑料碗1个 4.教具架摆放教具: ...

  • 柔力球套路31套动作名称
  • 柔力球套路(31套) 江西周裕春[从2009年3月老体协规定套路第三套开始整理陆续至2015年5月社体中心 套路第3套<青花瓷韵>止]精彩内容,尽在百度攻略:https://gl.baidu.com 一.国家体育局社体中心套路第1-3套: 第1套柔力球社体中心规定套路 赶着马车去北京 2 ...

  • 太极柔力球学习心得
  • 学习太极柔力球心得 学习太极柔力球已经一学期了,刚开始我的手拿不住拍子,练习让胳膊肿得更厉害,但我一直坚持,为了熟练球法,我用了很多功夫.虽然我们一学期来只是学习了两个动作,但从这仅有的动作当中感受到了太极柔力球的博大精深.太极柔力球,是把传统太极拳和现代运动中的网球.羽毛球结合起来的一种运动,可以 ...

  • 全国柔力球运动推广委员会关于
  • 2015年中国柔力球公开赛(西安站) 竞赛规程 一.主办单位 国家体育总局社会体育指导中心 二.承办单位 全国柔力球运动推广委员会 三.支持单位 中国教育网络电视台文体台 陕西奥体体育产业有限公司 四.运营单位 奥博隆(北京)体育发展有限公司 五.举办时间.地点 (一)时间:2015年11月11日至 ...

  • 对高校太极柔力球教学的探讨
  • 维普资讯 http://www.cqvip.com文 章 编 号 :0 6 4 7 (0 60 -0 0 0 10 - 8 72 0 )6 0 9 - 2对 高校 太极 柔 力球教学 的探讨 水 张宏伟 , 田摘 要 :太极 柔力球是 一项具 有民族特 色的新 兴体 育运 动. 它 不 受 场地 . ...

  • 单身派对活动策划
  • 时尚 浪漫 乐趣 迷情风尚 舞伴双翼 派对活动策划 随着社会不断高速的发展,相亲成为一种潮流和趋势,时尚派对成为单身青年沟通的桥梁,苏城每月类似的活动非常多.大多数相亲活动都是单一枯燥的,缺乏趣味性和互动性导致很多时尚单身青年参加这种活动的积极性和主动性逐渐的减落."迷情风尚 舞伴双翼&q ...