C语言扫雷游戏for Mac
2016-06-18 20:44
435 查看
操作方法
将代码复制到X-Code中编译成功后将可执行文件拖到桌面打开即可玩扫雷游戏。
提示
define N 4 的功能是生成4*4列的雷区
代码如下
将代码复制到X-Code中编译成功后将可执行文件拖到桌面打开即可玩扫雷游戏。
提示
define N 4 的功能是生成4*4列的雷区
代码如下
#include <stdio.h> #include<stdlib.h> #include<time.h> #define N 4 int a ,b ; void printfun() { int i,j; for(i=0;i<N;i++) { for(j=0;j<N;j++) { if(b[i][j]) printf("%2d ",a[i][j]); else printf(" * "); } printf("\n"); } // printf("\n"); } void printA() { int i,j; for(i=0;i<N;i++) { for(j=0;j<N;j++) { printf("%2d ",a[i][j]); } printf("\n"); } } int fun(int i,int j) { if(i<0||i==N||j<0||j==N) return 0; if(a[i][j]==-1) return 1; return 0; } int main() { int i,j,coordinate,mine,sum,flag; loop: mine=0; sum=N*N-1; srand((unsigned)time(0)); for(i=0;i<N;i++) { for(j=0;j<N;j++) { if(rand()%5==0) { a[i][j]=-1; mine++; } else a[i][j]=0; b[i][j]=0; } } if(mine==0) { a[rand()%N][rand()%N]=-1; mine++; } for(i=0;i<N;i++) { for(j=0;j<N;j++) { if(a[i][j]==-1) { continue; } a[i][j]+=fun(i-1,j-1); a[i][j]+=fun(i-1,j); a[i][j]+=fun(i-1,j+1); a[i][j]+=fun(i,j+1); a[i][j]+=fun(i+1,j+1); a[i][j]+=fun(i+1,j); a[i][j]+=fun(i+1,j-1); a[i][j]+=fun(i,j-1); } } do { srand((unsigned)time(0)); i=rand()%N;j=rand()%N; }while(a[i][j]==-1); b[i][j]=1; do { flag=0; do { system("clear"); printf(" 地雷个数:%d\n",mine); printfun(); if(flag) printf("\n输入有误,重新输入!\n"); printf("请输入一个两位整数排雷(如12):"); scanf("%d",&coordinate); getchar(); flag=1; }while(coordinate<11||coordinate>N*10+N); i=coordinate/10-1; j=coordinate%10-1; b[i][j]=1; sum--; }while(a[i][j]!=-1&&sum!=mine); printA(); if(a[i][j]==-1) printf("\n引爆地雷!-1代表地雷!\n"); else printf("\n扫雷成功!\n"); getchar(); goto loop; return 0; }
相关文章推荐
- C语言删除文件夹下所有代码的注释for Mac
- C语言删除单个代码的注释for Mac
- C语言文件提取神器for Mac
- C语言代码搜索神器for Mac
- C语言代码合并神器for Mac
- C语言基础大杂汇
- stl泛型程序设计
- stl泛型程序设计
- stl泛型程序设计
- stl泛型程序设计
- stl泛型程序设计
- c语言的基本类型
- c++ 面试常见问题
- C++ 右值引用
- thinking in c++ practice answer
- c++ - 变量与基本类型(1)
- 词组缩写 英语句子所有单词首字母大写输出 C语言/C++编程题
- 项目51-处理C++源代码的程序
- C语言判断一个数是否是质数(蒙格马利快速幂算法)
- 对C++虚函数、虚函数表的简单理解