资源描述:
《c语言实现扫雷程序模拟.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、本人写的扫雷程序,由于时间紧迫,写的比较粗糙,但经过c编译可运行,下面是源代码:/*name:kaituozhe001saolei1125.cpp*/#include#include#include#defineN9intmine[N][N],game[N][N];introw=0,col=0,a,b;voidmain(){voidputmine(intn1);intexpand(introw,intcol);intRemain();voidmyprint
2、f1();voidmyprintf2();intaroundmine(introw,intcol);/*提示说明*/printf("-------------------------------------------------------------------*您接下来要玩一个%d*%d的扫雷游戏。**请按提示操作(否则会出意外的),**在这个游戏中“*”代表地雷,“#”代表未打开的盒子。**当您将全部非雷盒子打开后,您就赢了!**谢谢参与游戏!》》开拓者制作bo《《*-----
3、--------------------------------------------------------------",N,N);intn1,i=0,j=0;/*初始化雷区*/for(i=0;i>",N,N,N*N);scanf("%d",&n1);printf("下面是所布雷阵>>");putmine(n1
4、);myprintf1();for(i=0;i>");myprintf1();while(Remain()!=n1){printf("请输入扫雷坐标,以“,”分开>>");scanf("%d,%d",&row,&col);for(i=0;i5、1)a=i,b=j;}if(mine[a][b]==42)gotoend;elseexpand(a,b);myprintf2();}printf("小样,你赢了!有本事再来一次!");end:if(Remain()!=n1)printf("杯具,你踩到雷了,所以你lose了!");}/*布雷*/voidputmine(intn1){intminenumber();inti=0,j=0;srand(time(NULL));for(i=0;minenumber()6、()%N,col=rand()%N;mine[row][col]=42;}}/*打开相关不是地雷的数组元素*/intexpand(introw,intcol){intaroundmine(introw,intcol);intinminearea(introw,intcol);inti=0,j=0;if(mine[row][col]=='*')return0;if(aroundmine(row,col)!=0){game[row][col]=aroundmine(row,col)+48;return0;}gam
7、e[row][col]='0';for(i=row-1;i<=row+1;i++)for(j=col-1;j<=col+1;j++){if(!inminearea(i,j))continue;if(game[i][j]!='#')continue;game[i][j]=aroundmine(i,j)+48;if(aroundmine(i,j)==0)expand(i,j);}}/*获得周围地雷个数*/intaroundmine(introw,intcol){intinminearea(introw,intco
8、l);intaround=0;inti=0,j=0;for(i=row-1;i<=row+1;i++)for(j=col-1;j<=col+1;j++){if(!inminearea(i,j))continue;if(mine[i][j]==42)around++;}returnaround;}/*是否在雷区*/intinminearea(introw,intcol){if(row>=0&&row<