您的位置:

c语言台球小游戏dev,c语言弹球小游戏

本文目录一览:

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

速度和 接板 长度不能改

所以比较难玩

#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+r1r||x+r1r)

{ phrase=0;}

if((x-r1=r||x+r1=r)x+r1=l)

{

if(yt)

phrase=1;

if(y+r1=tphrase==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-r1top[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+r1right[j])||(x-r1=right[j]x-r1left[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+r1639) /*控制小球的弹射范围*/

{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==77l=565) /*键盘控制设定*/

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

if(a==75l=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里就不用

修改过了,试一试吧。

我这里可以

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

驱动没安装好

c语言小游戏代码

最基础的贪吃蛇的代码

#includestdio.h

#includewindows.h//基本型态定义。支援型态定义函数。使用者界面函数 图形装置界面函数。

#includeconio.h //用户通过按键盘产生的对应操作 (控制台)

#includestdlib.h

#includetime.h //日期和时间头文件

#define LEN 30

#define WID 25

int Snake[LEN][WID] = {0}; //数组的元素代表蛇的各个部位

char Sna_Hea_Dir = 'a';//记录蛇头的移动方向

int Sna_Hea_X, Sna_Hea_Y;//记录蛇头的位置

int Snake_Len = 3;//记录蛇的长度

clock_t Now_Time;//记录当前时间,以便自动移动

int Wait_Time ;//记录自动移动的时间间隔

int Eat_Apple = 1;//吃到苹果表示为1

int Level ;

int All_Score = -1;

int Apple_Num = -1;

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //获取标准输出的句柄 windows.h

//句柄 :标志应用程序中的不同对象和同类对象中的不同的实例 方便操控,

void gotoxy(int x, int y)//设置光标位置

{

COORD pos = {x,y}; //定义一个字符在控制台屏幕上的坐标POS

SetConsoleCursorPosition(hConsole, pos); //定位光标位置的函数windows.h

}

void Hide_Cursor()//隐藏光标 固定函数

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(hConsole, cursor_info);

}

void SetColor(int color)//设置颜色

{

SetConsoleTextAttribute(hConsole, color);

//是API设置字体颜色和背景色的函数 格式:SetConsoleTextAttribute(句柄,颜色);

}

void Print_Snake()//打印蛇头和蛇的脖子和蛇尾

{

int iy, ix, color;

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

if(Snake[ix][iy] == 1)//蛇头

{

SetColor(0xf); //oxf代表分配的内存地址 setcolor:34行自定义设置颜色的函数

gotoxy(ix*2, iy);

printf("※");

}

if(Snake[ix][iy] == 2)//蛇的脖子

{

color = rand()%15 + 1; //rand()函数是产生随机数的一个随机函数。C语言里还有 srand()函数等。

//头文件:stdlib.h

if(color == 14)

color -= rand() % 13 + 1; //变色

SetColor(color);

gotoxy(ix*2, iy);

printf("■");

}

if(Snake[ix][iy] == Snake_Len)

{

gotoxy(ix*2, iy);

SetColor(0xe);

printf("≈");

}

}

}

void Clear_Snake()//擦除贪吃蛇

{

int iy, ix;

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

gotoxy(ix*2, iy);

if(Snake[ix][iy] == Snake_Len)

printf(" ");

}

}

void Rand_Apple()//随机产生苹果

{

int ix, iy;

do

{

ix = rand() % LEN;

iy = rand() % WID;

}while(Snake[ix][iy]);

Snake[ix][iy] = -1;

gotoxy(ix*2, iy);

printf("⊙");

Eat_Apple = 0;

}

void Game_Over()//蛇死掉了

{

gotoxy(30, 10);

printf("Game Over");

Sleep(3000);

system("pause nul");

exit(0);

}

void Move_Snake()//让蛇动起来

{

int ix, iy;

for(ix = 0; ix LEN; ++ix)//先标记蛇头

for(iy = 0; iy WID; ++iy)

if(Snake[ix][iy] == 1)

{

switch(Sna_Hea_Dir)//根据新的蛇头方向标志蛇头

{

case 'w':

if(iy == 0)

Game_Over();

else

Sna_Hea_Y = iy - 1;

Sna_Hea_X = ix;

break;

case 's':

if(iy == (WID -1))

Game_Over();

else

Sna_Hea_Y = iy + 1;

Sna_Hea_X = ix;

break;

case 'a':

if(ix == 0)

Game_Over();

else

Sna_Hea_X = ix - 1;

Sna_Hea_Y = iy;

break;

case 'd':

if(ix == (LEN - 1))

Game_Over();

else

Sna_Hea_X = ix + 1;

Sna_Hea_Y = iy;

break;

default:

break;

}

}

if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1Snake[Sna_Hea_X][Sna_Hea_Y]!=0Snake[Sna_Hea_X][Sna_Hea_Y]!=-1)

Game_Over();

if(Snake[Sna_Hea_X][Sna_Hea_Y] 0)//吃到苹果

{

++Snake_Len;

Eat_Apple = 1;

}

for(ix = 0; ix LEN; ++ix)//处理蛇尾

for(iy = 0; iy WID; ++iy)

{

if(Snake[ix][iy] 0)

{

if(Snake[ix][iy] != Snake_Len)

Snake[ix][iy] += 1;

else

Snake[ix][iy] = 0;

}

}

Snake[Sna_Hea_X][Sna_Hea_Y] = 1;//处理蛇头

}

void Get_Input()//控制蛇的移动方向

{

if(kbhit())

{

switch(getch())

{

case 87:

Sna_Hea_Dir = 'w';

break;

case 83:

Sna_Hea_Dir = 's';

break;

case 65:

Sna_Hea_Dir = 'a';

break;

case 68:

Sna_Hea_Dir = 'd';

break;

default:

break;

}

}

if(clock() - Now_Time = Wait_Time)//蛇到时间自动行走

{

Clear_Snake();

Move_Snake();

Print_Snake();

Now_Time = clock();

}

}

void Init()//初始化

{

system("title 贪吃毛毛蛇");

system("mode con: cols=80 lines=25");

Hide_Cursor();

gotoxy(61, 4);

printf("You Score:");

gotoxy(61, 6);

printf("You Level:");

gotoxy(61, 8);

printf("The Lenght:");

gotoxy(61, 10);

printf("The Speed:");

gotoxy(61, 12);

printf("Apple Num:");

int i;

for(i = 0; i Snake_Len; ++i)//生成蛇

Snake[10+i][15] = i+1;

int iy, ix;//打印蛇

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

if(Snake[ix][iy])

{

SetColor(Snake[ix][iy]);

gotoxy(ix*2, iy);

printf("■");

}

}

}

void Pri_News()//打印信息

{

SetColor(0xe);

gotoxy(73,4);

All_Score += Level;

printf("%3d", All_Score);

gotoxy(73, 6);

printf("%3d", Level);

gotoxy(73, 8);

printf("%3d",Snake_Len);

gotoxy(73, 10);

printf("0.%3ds", Wait_Time/10);

gotoxy(73, 12);

printf("%d", Apple_Num);

}

void Lev_Sys()//等级系统

{

if(((Apple_Num-1) / 10) == Level)

{

++Level;

if(Wait_Time 50)

Wait_Time -= 50;

else

if(Wait_Time 10)

Wait_Time -= 10;

else

Wait_Time -= 1;

}

}

int main(void)

{

Init();

srand((unsigned)time(NULL));//设置随机数的种子

Now_Time = clock();

int speed1=1000,speed2,a;

printf("\n");

printf("请输入你想要的速度\n");

scanf("%d",speed2);

Level=1;

Wait_Time=speed1-speed2;

printf("请输入你想要的苹果数\n");

scanf("%d",a);

while(a--)

Rand_Apple();

while(1)

{

if(Eat_Apple)

{

++Apple_Num;

Rand_Apple();

Lev_Sys();

Pri_News();

}

Get_Input();

Sleep(10);

}

return 0;

}

关于台球游戏的C语言编程

#includestdio.h

#includegraphics.h

#includeconio.h

#include stdlib.h

#includemath.h

#includetime.h

#define PATH "D:\\tc30"

#define pi 3.14159265354

#define r 10.0

#define zero 0.01

#define BC 0

#define DISK 2

float R=r+0.5;

struct balltype

{

float x,y;

float dx,dy;

int flag;

}ball[16];

int cx=320-5*r,cy=240;

float power=15.0;

int flag=1,player=0,chang=0;

int hole[6][2]={{17,92},{320,92},{623,92},

{17,388},{320,388},{623,388}};

int plball[2]={0,0},ex=1;

void help()

{ char *fname = { "a/4:left d/6:right w/8:up s/2:down Space:shoot ,or.:power Esc:exit" };

setcolor(14);

outtextxy(8,460,fname);

}

void waittime(double t)

{

time_t t1,t2;

double a,b;

a=time(t1);

while(1)

{

b=time(t2);

if(b-at) break;

}

}

void drawhlep()

{

setbkcolor(9);

setcolor(14);

rectangle(50,50,550,400);

rectangle(50,100,550,145);

settextstyle(0, 0, 4);

outtextxy(150, 60, "Help You!");

rectangle(250,100,400,145);

setcolor(4);

settextstyle(3,0,4);

outtextxy(270,102,"Player1");

outtextxy(420,102,"Player2");

setcolor(14);

rectangle(50,170,550,195);

rectangle(50,220,550,245);

rectangle(50,270,550,295);

rectangle(50,320,550,345);

rectangle(50,370,550,400);

rectangle(400,145,550,245);

rectangle(50,145,250,370);

setcolor(10);

settextstyle(3,0,1);

outtextxy(115,146,"Left");

outtextxy(115,171,"Right");

outtextxy(115,196,"Up");

outtextxy(115,221,"Down");

outtextxy(115,246,"Move Quick");

outtextxy(115,271,"Add");

outtextxy(115,296,"Subtrate");

outtextxy(115,321,"Shoot");

outtextxy(115,346,"Exit");

setcolor(5);

settextstyle(7,0,4);

outtextxy(60,385,"Welcome to ZGQ's Game. QQ:271111716 E-mail:zgq150@163.com");

}