扫雷程序代码.docx
《扫雷程序代码.docx》由会员分享,可在线阅读,更多相关《扫雷程序代码.docx(16页珍藏版)》请在三一办公上搜索。
1、扫雷程序代码/*挖雷游戏,仿windows,version 0.1湖北工程学院计算机学院,xhx修改自网络源代码游戏控制:f:标记有雷,a:自动挖开,q:不确定,空格或回车:挖雷,ESC:退出游戏*/#include <graphics.h>#include <conio.h>/*定义有效的键值*/#define ENTER 13#define ESC 27#define SPACE 32#define UP 72 #define DOWN 80 #define LEFT 75 #define RIGHT 77#define LOWERF f#define UPPERF F#d
2、efine LOWERA a#define UPPERA A#define LOWERQ q#define UPPERQ Q/*定义雷区方块的尺寸*/#define ROW 16#define COL 16#define STARTX (getwidth-ROW*SIZEX)/2#define STARTY (getheight-COL*SIZEY)/2#define SIZEX 30#define SIZEY 30#define UNFLAG 0 /*未标记或挖开*/#define FLAGED 1 /*已标记为雷*/#define QUESTION 20 /*不能确定*/#define E
3、XPLOD 30 /*踩雷*/#define OPEN 40 /*挖开*/int tableROWCOL; /* 雷区各方块是否有雷*/int numROWCOL; /*雷区各方块周围的雷数*/int flagROWCOL; /*雷区各方块的状态*/int pi,pj; /*光标当前位置*/int di8=-1,-1,0,1,1,1,0,-1; /*方块八向偏移量*/int dj8=0,1,1,1,0,-1,-1,-1;/*获取按键信息,返回有效的操作值*/int getKey(void)while(1)if(kbhit)int key=getch;switch(key)case ENTER:
4、case UP:case DOWN:case LEFT:case RIGHT:case ESC:case SPACE:case LOWERF:case UPPERF:case LOWERA:case UPPERA:case LOWERQ:case UPPERQ: return key;/*随机生成地雷的分布*/void generateMineint totalMine;int i,k;int ri,rj;int ni,nj;static int seed=0;totalMine = ROW * COL / 6;memset(table, 0 ,sizeof(table);memset(num
5、, 0 ,sizeof(num);srand(seed+);for(i=0;i<totalMine;i+)dori = rand%ROW;rj = rand%COL;while(tablerirj);for(k=0;k<8;k+)ni = ri + dik;nj = rj + djk;if(ni>=0 & ni< ROW & nj>=0 & nj<COL) numninj+;tablerirj = 1;memset(flag,UNFLAG,sizeof(flag);/*绘制小方块*/void drawBlock(int i, int j)int x,y,xx,yy;in
6、t color;int mx,my;x = STARTX+j*SIZEX;y = STARTY+i*SIZEY;xx = x+SIZEX-1;yy = y+SIZEY-1;color = (flagij=UNFLAG)?LIGHTGRAY:DARKGRAY;setcolor(WHITE);rectangle(x,y,xx,yy);setfillstyle(color,SOLID_FILL);floodfill(x+1,y+1,WHITE);setcolor(WHITE); line(x,y,xx,y);line(x,y,x,yy);setcolor(BLACK); line(xx,y,xx,y
7、y);line(x,yy,xx,yy);if(pi=i & pj=j)setcolor(RED);rectangle(x+1,y+1,xx-1,yy-1);mx = x+5;my = y+5;setcolor(WHITE);setbkmode(TRANSPARENT);switch(flagij)case UNFLAG:outtextxy(mx,my,);break;case FLAGED:outtextxy(mx,my,F);break;case QUESTION:outtextxy(mx,my,?);break;case EXPLOD:outtextxy(mx,my,*);break;ca
8、se OPEN:if(numij>=1 & numij<=8)char buf3;itoa(numij,buf,10);outtextxy(mx,my,buf);break;/*绘制雷区*/void drawTableint i,j;for(i=0;i<ROW;i+)for(j=0;j<COL;j+) drawBlock(i,j);/*初始化游戏*/void newGamecleardevice;generateMine;pi = pj = 0;drawTable;outtextxy(100,560,游戏控制:f:标记有雷,a:自动挖开,q:不确定,空格或回车:挖雷,ESC:退
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 扫雷 程序代码
链接地址:https://www.31ppt.com/p-3539068.html