c语言实现扫雷程序模拟.docVIP

  • 5
  • 0
  • 约3.32千字
  • 约 5页
  • 2017-06-07 发布于重庆
  • 举报
c语言实现扫雷程序模拟

本人写的扫雷程序,由于时间紧迫,写的比较粗糙,但经过c编译可运行,下面是源代码: /*name:kaituozhe001saolei1125.cpp*/ #include stdio.h #include time.h #include stdlib.h #define N 9 int mine[N][N],game[N][N]; int row=0,col=0,a,b; void main() { void putmine(int n1); int expand(int row,int col); int Remain(); void myprintf1(); void myprintf2(); int aroundmine(int row,int col); /* 提示说明 */ printf( -------------------------------------------------------------------\n* 您接下来要玩一个%d*%d的扫雷游戏。 *\n* 请按提示操作(否则会出意外的), *\n* 在这个游戏中“*”代表地雷,“#”代表未打开的盒子。 *\n* 当您将全部非雷盒子打开后,您就赢了! *\n* 谢谢参与游戏! 》》开拓者制作bo《《 *\n -------------------------------------------------------------------,N,N); int n1,i=0,j=0; /*初始化雷区*/ for(i=0;iN;i++) { for(j=0;jN;j++) mine[i][j]=46, game[i][j]=#; } printf(\n\n此游戏为%d*%d雷阵,请输入需布雷的数量(%d以内) ,N,N,N*N); scanf(%d,n1); printf(\n下面是所布雷阵 \n); putmine(n1); myprintf1(); for(i=0;iN;i++) for(j=0;jN;j++) { if(mine[i][j]!=*) mine[i][j]=aroundmine(i,j)+48; } printf(\n计数雷阵 \n); myprintf1(); while(Remain()!=n1) { printf(\n请输入扫雷坐标,以“,”分开 ); scanf(%d,%d,row,col); for(i=0;iN;i++) for(j=0;jN;j++) { if(i==row-1j==col-1) a=i,b=j; } if(mine[a][b]==42) goto end; else expand(a,b); myprintf2(); } printf(\n小样,你赢了! 有本事再来一次! \n); end: if(Remain()!=n1) printf(\n杯具,你踩到雷了,所以你lose了!\n); } /*布雷*/ void putmine(int n1) { int minenumber(); int i=0,j=0; srand(time(NULL)); for(i=0; minenumber()n1;i++) { row=rand()%N , col=rand()%N; mine[row][col]=42; } } /*打开相关不是地雷的数组元素*/ int expand(int row,int col) { int aroundmine(int row,int col); int inminearea(int row,int col); int i=0,j=0; if( mine[row][col]==*) return 0; if( aroundmine(row,col)!=0 ) { game[row][col]=aroundmine

文档评论(0)

1亿VIP精品文档

相关文档