C 语言乒乓球游戏源码
程序说明 :
1. 程序运行时,显示游戏欢迎页~
2. 可统计游戏当前分数,并时刻进行统计和显示~
3. 可根据游戏当前分数,调整乒乓球的速度,以提高游戏难度~
4. 游戏结束时,显示游戏结束页,提示玩家退出游戏~
游戏源码 :
#include "stdio.h"
#include "graphics.h" #include "stdlib.h"
#include "bios.h"
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define ESC 0x011b
*/ /* 存放方块的信息
struct box {
int x; /* 方块右上角横坐标 */
int y; /* 方块右上角纵坐标 */
int key; /* 方块是否被击中过 ,1 表示被击中过, 0 表示没有被击
中过 */
}a[10][20];
int k; /* 用来判断游戏的结束方式, 0: 按 ESC退出, 1: 正常
退出 */
int num=0; /* 用来统计用户的当前分数 */ char strnum[5]; /* 用来存放
用户当前分数对应的字符串 */
/* 初始化图形 */
void initgr() {
int gd=DETECT,gm;
initgraph(&gd,&gm,""); }
/* 画出初始图 */
void picture() {
int x,y,i,color;
setcolor(WHITE);
outtextxy(250,400,"ANY KEY ...");
while(!kbhit()) {
settextstyle(0,0,4);
for(i=1;i<=15;i++) {
setcolor(i);
outtextxy(100,180,"PING PANG BALL");
delay(5000);
}
}
cleardevice();
setbkcolor(BLUE);
setfillstyle(SOLID_FILL,RED);
bar(300,400,348,404);
textcolor(WHITE); /* 显示玩家当前分数 */
outtextxy(250,420,"NUMBER:");
/* 画屏幕上端的方块 */
randomize();
for(y=15;y<=180;y=y+15) {
if((y/15)%2==0) {
i=1;
} else {
i=0;
}
for(x=0;x<=640;x=x+32) {
if((x/32)%2==0 && i==1) {
color=5;
} else if(i==1 && (x/32)%2==1) {
color=15;
} else if(i==0 && (x/32)%2==0) {
color=15;
} else {
color=5;
}
/* color=((rand()%5)+2); */
setfillstyle(SOLID_FILL,color);
bar(x,y,x+32,y+15);
}
}
sleep(1);
}
/* 关闭图形 */
void closegr() {
cleardevice();
closegraph();
}
/* 游戏结束 */
void end() {
cleardevice();
setbkcolor(0);
switch(k) {
case 1:
setcolor(RED);
settextstyle(0,0,3);
outtextxy(200,150,"YOU LOST !!");
itoa(num,strnum,10); /* 将 num数字按十进制方式转换为对应的字符串 */
outtextxy(400,220,strnum); /* 输出当前分数 */