#include<stdio.h>#include<time.h>#include<stdlib.h>#define ROW 9#define COL 9#define ROWS ROW+2#define COLS COL+2#define EASY_COUNT 10void menu(){printf("********************************\n");printf("********   1. play        ******\n");    printf("*********  0.exit         *******\n");    printf("********************************\n");}void initboard(char board[ROWS][COLS],int rows,int cols,char set){int i,j;for(i=0;i<rows;i++){for(j=0;j<cols;j++)board[i][j]=set;}}void displayboard(char board[ROWS][COLS],int row,int col){int i,j;for(i=0;i<=col;i++){printf("%d ",i);    }    printf("\n");for(i=1;i<=row;i++){printf("%d ",i);for(j=1;j<=col;j++){printf("%c ",board[i][j]);}printf("\n"); } }void setmine(char board[ROWS][COLS],int row,int col){int  count=EASY_COUNT;while(count){int x=rand()%row+1;int y=rand()%col+1;if(board[x][y]=='0'){board[x][y]='1';count--;}}}int get_mine_count(char mine[ROWS][COLS],int x,int y){    returnmine[x-1][y]+mine[x-1][y-1]+mine[x][y-1]+mine[x-1][y+1]+mine[x+1][y-1]+mine[x][y+1]+mine[x+1][y+11]+mine[x+1][y]-8*'0';}void findmine(char mine[ROWS][COLS],char show[ROWS][COLS],int row,int col){int x,y;int win=0;while(win<row*col-EASY_COUNT){printf("请输入排查雷的坐标:\n");scanf("%d %d",&x,&y);if(x>=1&&x<=row&&y>=1&&y<=col){   if(mine[x][y]=='1')   {   printf("很遗憾,你被炸死了\n");    displayboard(mine,ROW,COL);    break;   }   else   {   int count=get_mine_count(mine,x,y);//求旁边雷的个数     show[x][y]=count+'0';    displayboard(show,ROW,COL);    win++;   }}else{printf("坐标输入错误,请重新输入\n");}    }    if(win==row*col-EASY_COUNT)    {    printf("恭喜你排雷成功\n");    displayboard(mine,ROW,COL);    }  }void game(){char mine[ROWS][COLS]={0};//布置好雷的数组 char show[ROWS][COLS]={0};//排查出信息的数组 initboard(mine,ROWS,COLS,'0');//初始化数组 initboard(show,ROWS,COLS,'*');//初始化数组displayboard(show,ROW,COL);//打印数组 setmine(mine,ROW,COL);//布置雷 findmine(mine,show,ROW,COL);//排雷 }void test(){int input=0;srand((unsigned int)time(NULL));do{menu();printf("请选择:1or0\n");scanf("%d",&input);switch(input){case 1:game();break;case 0:  printf("退出游戏\n");break;default:printf("输入错误,请选择1or0\n");break;}}while(input);}int main(){    test(); return 0;}


©著作权归作者所有:来自51CTO博客作者天浮云的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 【php基础入门】小白整理PHP常用的字符串函数使用总结分析(推荐)
  2. 【php基础入门】PHP中常用的数组操作使用方法笔记整理(推荐)
  3. 0429作业
  4. php之数组键名更换,快速生成数组与数组过滤
  5. php 中的for and foreach遍历数组
  6. C语言中用于计算数组长度的函数 “strlen() ”。
  7. 语法基础: 使用不同的数据类型标记数组
  8. 动态数组传递数据示例 - 回复 YinGaGa 的问题
  9. 学 Win32 汇编[29] - 串指令: MOVS*、CMPS*、SCAS*、LODS*、REP

随机推荐

  1. 学习C的第三天-要记住的ASCII码值
  2. JavaScript 程序员可以从C ++中学到什么[
  3. centos7 OpenSSL1.1.1i rpm自动打包升级
  4. 用 TypeScript 开发 Node.js 程序[每日前
  5. MAC地址表和ARP表分别是什么?
  6. 6道tomcat面试题,最后两道难倒我了
  7. ESXi GPU 直通
  8. RPA:如何给财务人员带来新机遇?
  9. 快速上手最新的 Vue CLI 3[每日前端夜话0
  10. 浏览器中的JavaScript:文档对象模型与 DOM