c语言游戏小型程序代码,C语言小游戏源码

在此提供C语言小游戏源码,包括扫雷游戏,贪吃蛇游戏,时钟等。

运行时只要把红色部分改为自己电脑上TC目录的BGI分目录即可。

//扫雷游戏

#include

#include

#include

#define LEFTPRESS 0xff01

#define LEFTCLICK 0xff10

#define LEFTDRAG 0xff19

#define MOUSEMOVE 0xff08

struct

{

int num;

int roundnum;

int flag;

}Mine[10][10];

int gameAGAIN=0;

int gamePLAY=0;

int mineNUM;

char randmineNUM[3];

int Keystate;

int MouseExist;

int MouseButton;

int MouseX;

int MouseY;

void Init(void);

void MouseOn(void);

void MouseOff(void);

void MouseSetXY(int,int);

int LeftPress(void);

int RightPress(void);

void MouseGetXY(void);

void Control(void);

void GameBegain(void);

void DrawSmile(void);

void DrawRedflag(int,int);

void DrawEmpty(int,int,int,int);

void GameOver(void);

void GameWin(void);

int MineStatistics(int,int);

int ShowWhite(int,int);

void GamePlay(void);

void Close(void);

void main(void)

{

Init();

Control();

Close();

}

void Init(void)

{

int gd=DETECT,gm;

initgraph(&gd,&gm,"D:\\tc20\\BGI");

}

void Close(void)

{

closegraph();

}

void MouseOn(void)

{

_AX=0x01;

geninterrupt(0x33);

}

void MouseOff(void)

{

_AX=0x02;

geninterrupt(0x33);

}

void MouseSetXY(int x,int y)

{

_CX=x;

_DX=y;

_AX=0x04;

geninterrupt(0x33);

}

int LeftPress(void)

{

_AX=0x03;

geninterrupt(0x33);

return(_BX&1);

}

int RightPress(void)

{

_AX=0x03;

geninterrupt(0x33);

return(_BX&2);

}

void MouseGetXY(void)

{

_AX=0x03;

geninterrupt(0x33);

MouseX=_CX;

MouseY=_DX;

}

void Control(void)

{

int gameFLAG=1;

while(1)

{

if(gameFLAG)

{

GameBegain();

GamePlay();

if(gameAGAIN==1)

{

gameAGAIN=0;

continue;

}

}

MouseOn();

gameFLAG=0;

if(LeftPress())

{

MouseGetXY();

if(MouseX>280&&MouseX<300&&MouseY>65&&MouseY<85)

{

gameFLAG=1;

continue;

}

}

if(kbhit())

break;

}

MouseOff();

}

void DrawSmile(void)

{

setfillstyle(SOLID_FILL,YELLOW);

fillellipse(290,75,10,10);

setcolor(YELLOW);

setfillstyle(SOLID_FILL,BLACK);

fillellipse(285,75,2,2);

fillellipse(295,75,2,2);

setcolor(BLACK);

bar(287,80,293,81);

}

void DrawRedflag(int i,int j)

{

setcolor(7);

setfillstyle(SOLID_FILL,RED);

bar(198+j*20,95+i*20,198+j*20+5,95+i*20+5);

setcolor(BLACK);

line(198+j*20,95+i*20,198+j*20,95+i*20+10);

}

void DrawEmpty(int i,int j,int mode,int color)

{

setcolor(color);

setfillstyle(SOLID_FILL,color);

if(mode==0)

bar(200+j*20-8,100+i*20-8,200+j*20+8,100+i*20+8);

else

if(mode==1)

bar(200+j*20-7,100+i*20-7,200+j*20+7,100+i*20+7);

}

void GameBegain(void)

{

int i,j;

cleardevice();

if(gamePLAY!=1)

{

MouseSetXY(290,70);

MouseX=290;

MouseY=70;

}

gamePLAY=1;

mineNUM=0;

setfillstyle(SOLID_FILL,7);

bar(190,6

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值