计算机C语言扫雷源代码

上传人:ali****an 文档编号:110010616 上传时间:2019-10-28 格式:DOC 页数:14 大小:58.50KB
返回 下载 相关 举报
计算机C语言扫雷源代码_第1页
第1页 / 共14页
计算机C语言扫雷源代码_第2页
第2页 / 共14页
计算机C语言扫雷源代码_第3页
第3页 / 共14页
计算机C语言扫雷源代码_第4页
第4页 / 共14页
计算机C语言扫雷源代码_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《计算机C语言扫雷源代码》由会员分享,可在线阅读,更多相关《计算机C语言扫雷源代码(14页珍藏版)》请在金锄头文库上搜索。

1、 #include #include #include #include /*鼠标信息宏定义*/ #define WAITING 0xff00 #define LEFTPRESS 0xff01 #define LEFTCLICK 0xff10 #define LEFTDRAG 0xff19 #define RIGHTPRESS 0xff02 #define RIGHTCLICK 0xff20 #define RIGHTDRAG 0xff2a #define MIDDLEPRESS 0xff04 #define MIDDLECLICK 0xff40 #define MIDDLEDRAG 0xff

2、4c #define MOUSEMOVE 0xff08 struct int num;/*格子当前处于什么状态,1有雷,0已经显示过数字或者空白格子*/ int roundnum;/*统计格子周围有多少雷*/ int flag;/*右键按下显示红旗的标志,0没有红旗标志,1有红旗标志*/Mine1010;int gameAGAIN=0;/*是否重来的变量*/int gamePLAY=0;/*是否是第一次玩游戏的标志*/int mineNUM;/*统计处理过的格子数*/char randmineNUM3;/*显示数字的字符串*/int Keystate;int MouseExist;int Mo

3、useButton;int MouseX;int MouseY;int up1616,down1616,mouse_draw1616,pixel_save1616; void MouseMath()/*计算鼠标的样子*/ int i,j,jj,k; long UpNum16= 0x3fff,0x1fff,0x0fff,0x07ff, 0x03ff,0x01ff,0x00ff,0x007f, 0x003f,0x00ff,0x01ff,0x10ff, 0x30ff,0xf87f,0xf87f,0xfc3f ; long DownNum16= 0x0000,0x7c00,0x6000,0x7000,

4、 0x7800,0x7c00,0x7e00,0x7f00, 0x7f80,0x7e00,0x7c00,0x4600, 0x0600,0x0300,0x0300,0x0180 ; for(i=0;i=0;k-) upik=0; for(k=jj;k=0;k-) downik=0; for(k=0;k16;k+)/*四种组合方式*/ if(upik=0&downik=0) mouse_drawik=1; else if(upik=0&downik=1) mouse_drawik=2; else if(upik=1&downik=0) mouse_drawik=3; else mouse_drawi

5、k=4; mouse_draw12=4;/*特殊点*/ void Init(void);/*图形驱动*/void MouseOn(int,int);/*鼠标光标显示*/void MouseOff(void);/*鼠标光标隐藏*/void MouseSetXY(int,int);/*设置当前位置*/int LeftPress(void);/*左键按下*/int RightPress(void);/*鼠标右键按下*/int MiddlePress();void MouseGetXY(void);/*得到当前位置*/int MouseStatus();void Control(void);/*游戏开

6、始,重新,关闭*/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

7、);/*游戏过程*/void Close(void);/*图形关闭*/void main(void) Init(); MouseMath(); /MouseOn(MouseX,MouseY); Control(); Close();void Init(void)/*图形开始*/ int gd=DETECT,gm; registerbgidriver(EGAVGA_driver); initgraph(&gd,&gm,);void Close(void)/*图形关闭*/ closegraph();/*鼠标光标显示*/ void MouseOn(int x,int y) int i,j; int

8、color; for(i=0;i16;i+)/*画鼠标*/ for(j=0;j16;j+) pixel_saveij=getpixel(x+j,y+i);/*保存原来的颜色*/ if(mouse_drawij=1) putpixel(x+j,y+i,0); else if(mouse_drawij=2) putpixel(x+j,y+i,15); /*隐藏鼠标*/ void MouseOff() int i,j,x,y,color; x=MouseX; y=MouseY; for(i=0;i16;i+)/*原位置异或消去*/ for(j=0;j16;j+) if(mouse_drawij=3|

9、mouse_drawij=4) continue; color=getpixel(x+j,y+i); putpixel(x+j,y+i,colorcolor); putpixel(x+j,y+i,pixel_saveij); 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)/*鼠标右键按下*/

10、_AX=0x03; geninterrupt(0x33); return(_BX&2); /*是否按下中键 返回值同上 */ int MiddlePress() _AX=0x03; geninterrupt(0x33); return(_BX&4); void MouseGetXY(void)/*得到当前位置*/ _AX=0x03; geninterrupt(0x33); MouseX=_CX; MouseY=_DX;/*鼠标按键情况,返回0表示只移动,返回1表示左右键同时按下,2表示只按了左键,3表示只按了右键*/ int MouseStatus() int x,y; int status; int press=0; int i,j,color; status=0;/*默认鼠标没有移动*/ x=MouseX; y=MouseY;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 教育学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号