预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

扫雷 纯C语言实现 件夹中找到“扫雷安===============================分==========割===========线================================ #include<stdio.h> #include<time.h> //本程序使用了EGE图形库 #include<graphics.h> //地雷个数 #defineNUM40 intmap[20][20];//用于保存地雷阵,9表示地雷,0~8表示周围地雷的个数 intui[20][20];//用于保存显示的界面,0表示未翻开,1表示翻开,2表示插上了小红旗 longtimer,timer2; intlife,isnew; PIMAGELEI;//地雷 PIMAGESHOW_0;//未翻开的方块 PIMAGESHOW_1;//翻开的方块 PIMAGESHOW_FLAG;//小红旗 intmakemap(intnum);//初始化地雷阵 intdraw(void);绘制图形 intdataup(void);//更新数据,响应鼠标操作 voidshowother(intx,inty);//翻开空白方块旁边挨着的空白方块 intmain() { intx,y; srand((int)time(NULL)); initgraph(600,700); LEI=newimage(); SHOW_0=newimage(); SHOW_1=newimage(); SHOW_FLAG=newimage(); getimage(LEI,"lei.png"); getimage(SHOW_0,"show_0.png"); getimage(SHOW_1,"show_1.png"); getimage(SHOW_FLAG,"show_flag.png"); setfillcolor(LIGHTGRAY); while(1){ bar(80,600,600,700); setcolor(LIGHTBLUE); setfont(50,0,"宋体"); xyprintf(80,600,"MadeBy:BlueSky"); setfont(20,0,"宋体"); xyprintf(80,650,"共%d个地雷找到它们并按右键插上小红旗",NUM); life=1;isnew=1; makemap(NUM); for(y=0;y<20;y++) for(x=0;x<20;x++)ui[y][x]=0; setbkcolor(LIGHTGRAY); draw(); timer=clock(); while(life) { timer2=clock(); setfont(-80,0,""); setcolor(RED); xyprintf(0,600,"%d",(timer2-timer)/1000); dataup(); if(life==0){ for(y=0;y<20;y++) for(x=0;x<20;x++)ui[y][x]=1; draw(); break; } if(isnew) draw(); if(life==2)break; } setfont(50,0,"宋体"); setcolor(RED); bar(80,600,600,700); if(life==2)xyprintf(80,600,"太牛了!你赢了!"); if(life==0)xyprintf(80,600,"噢!你挂了!"); setfont(30,0,"宋体"); xyprintf(80,650,"(按空格再来一局!其他键退出)"); if(getch()!=VK_SPACE)break; } delimage(SHOW_1); delimage(SHOW_0); delimage(LEI); closegraph(); } intmakemap(intnum) { intx,y,n=0; inti,j; for(y=0;y<20;y++) for(x=0;x<20;x++)map[y][x]=0; for(;n<num;){ n=0; x=rand()%20; y=rand()%20; map[y][x]=9; for(y=0;y<20;y++) for(x=0;x<20;x++) if(map[y][x]==9)n++; } for(y=0;y<20;y++) for(x=0;x<20;x++) { if(map[y][x]!=9) for(i=y-1;i<=y+1;i++) for(j=x-1;j<=x+1;j++) if(i>=0&&i<20&&j>=0&&j<20) if(map[i][j]==9)map[y][x]++; } return0