C语言实现扫雷项目

这篇文章主要为大家详细介绍了C语言实现扫雷项目,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

C语言实现扫雷项目,久久派带你了解更多相关信息。

本文实例为大家分享了C语言实现扫雷项目的具体代码,供大家参考,具体内容如下

核心思想就是,雷的分布看作是“答案”,落子的棋盘看作是“考卷”;
答卷的同时,需要去对一下“答案”,这个位置有没有雷,有则BOOM!无则判断周围9宫格的雷的数量,返回这个字符打印至“考卷”上!
同时,为了防止数组越界,保证每一个格子都有九宫格,需要在行与列均多加2;
最后,判断输赢的标准:总格子数量-雷数 = 落子次数,即可判定胜利!

下面为测试模块:

#include\"game.h\"void meau() { printf(\"****************************\\n\"); printf(\"********* 1.play ***********\\n\"); printf(\"********* 0.exit ***********\\n\"); printf(\"****************************\\n\");}void game() { //定义二维数组 char mine[ROWS][COLS] = { 0 };//雷区 char show[ROWS][COLS] = { 0 };//展示区 //初始化棋盘  //打印棋盘 Initboard(mine,ROWS,COLS,\'0\'); //DisplayBoard(mine, ROW, COL); Initboard(show, ROWS, COLS,\'*\'); DisplayBoard(show, ROW, COL); //设置雷区 setboom(mine , ROW , COL); //DisplayBoard(mine, ROW, COL); //排雷逻辑 FindBoom(mine,show,ROW,COL);}void main() { int input = 0; srand((unsigned int)time(NULL)); do {  meau();  printf(\"请选择:\\n\");  scanf(\"%d\",&input);  switch (input)  {  case 1:   //printf(\"开始扫雷\\n\");   game();   break;  case 0:   printf(\"退出游戏\\n\");   break;  default:   printf(\"输入错误,重新输入\");   break;  } } while (input);}

下面为游戏头文件模块

#include<stdio.h>#include<stdlib.h>#include<time.h>#define ROW 9#define COL 9#define COUNT 80#define ROWS ROW+2#define COLS COL+2//初始化棋盘void Initboard(char board[ROWS][COLS], int rows, int cols,char set);//打印棋盘void DisplayBoard(char board[ROWS][COLS], int rows, int cols);//设置雷的数列并使其随机分布void setboom(char board[ROWS][COLS], int row, int col);//排雷逻辑void FindBoom(char mine[ROWS][COLS], char show[ROWS][COLS], int row ,int col);

下面是游戏程序模块

#include\"game.h\"//初始化棋盘void Initboard(char board[ROWS][COLS], int rows, int cols, char set) { for (int i = 0; i < rows; i++) {  for (int j = 0; j < cols; j++) {   board[i][j] = set;  }   }}//打印棋盘 只显示9*9 void DisplayBoard(char board[ROWS][COLS], int row, int col) { printf(\"--------------------\\n\"); //加入列号 for (int  i = 0; i <= col; i++) {  printf(\"%d  \", i); } printf(\"\\n\"); for (int i = 1; i <= row; i++) {  //加入行号  printf(\"%d  \",i);  for (int j = 1; j <= col; j++) {   printf(\"%c  \", board[i][j]);  }  printf(\"\\n\"); } printf(\"--------------------\\n\");}//设置雷的数列并使其随机分布void setboom(char board[ROWS][COLS], int row, int col) { printf(\"雷区分布\\n\");  int x = 0; int y = 0; //设置雷的个数 int count = COUNT; while (count) {  int x = rand() % row + 1; //坐标范围锁定在1~9   int y = rand() % col + 1;  if (board[x][y] != \'1\')  {   board[x][y] = \'1\';   count--;  } }}//获取雷数量int GetCount(char mine[ROWS][COLS],int x,int y) { int count = 0; for (int i = x-1; i <= x+1; i++) {  for (int j = y-1; j <= y+1; j++)  {   if (mine[i][j] == \'1\') {    count++;   }  } } return count;}//排雷逻辑void FindBoom(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col) { int x = 0; int y = 0; int count = 0; int win = 0; // 9*9-10 = 70 ; //判断是否排雷成功 是通过计算可落子位置与完成落子的次数之间关系来判断 while (win < row*col - COUNT) {  printf(\"请输入要排查的坐标:->\\n\");  scanf(\"%d%d\", &x, &y);  if (x >= 1 && x <= row && y >= 1 && y <= col) {   if (mine[x][y] == \'1\') {    printf(\"你被BOOM BOOM BOOM了\\n\");    DisplayBoard(mine, ROW, COL);    break;   }   else {    //确定mine数组周围八个的雷格子数量    //返回这个数 至show[x][y];    count = GetCount(mine,x,y);    show[x][y] = count + \'0\';//count是整型,其阿斯克码 + 0的阿斯克码 就是具体字符的阿斯克码!  相当于转型了!    DisplayBoard(show,ROW,COL);    win++;   }  }  else {   printf(\"坐标非法,重新输入\");  } } if (win == row * col - COUNT) {  printf(\"排雷成功\\n\"); }}

总结:扫雷游戏将二维数组运用凌厉精致,需要再多练习几次,将这种数组传参,数组操作,数组思维,数组与数组间的联动的思维 融入日常操作;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持趣讯吧。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 5579166@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/8624.html

(0)
上一篇 2021-07-30 23:23:58
下一篇 2021-07-30 23:24:00

相关推荐

  • 江西省上饶市万年县汪家乡(汪家在哪里)

    又到马家柚成熟上市时节,江西省上饶市万年县汪家乡万家村的马家柚基地又迎来了热闹的采摘季。基地上,十多位农民正在忙着采摘丰收的果实,赶着运往县城的超市销售。市民和果农一起享受着丰收的快乐。近日,在万年县…

    2022-02-23
    800
  • 女人更年期要过四关更年期综合征(更年期的各种奇葩症状)

    对于很多女性来说,更年期的到来往往是毫无准备的,更年期女性的身体和情绪都会出现一些变化,加上对于更年期的了解缺乏,这些变化往往会让女性烦恼不已,下面就来说说女性到了更年期会出现那些症状。女性更年期的症状:1、情绪不稳定这是因为卵巢的功能下降或者丧

    2021-12-29 用户投稿
    820
  • 个人公众号起名创意(微信公众号名字推荐创意)

    运营公众号和经营品牌一样,首先第一件事情就是需要一个好的名字。关于品牌命名有很多方法和技巧,但是具体到公众号,还有一些差异。我发现90%的公众号从业者对名字都不够重视,起初我也一样不重视,直到我实实在在体会过一个名字带来的好处和爆发力之后,我彻底改观

    2021-12-26 随笔
    2780
  • 现在养猪能赚钱吗(2021致富经养猪)

    现在在农村里面养猪还有的补贴吗?针对于2019年出现的非洲猪瘟,再经历2020年的疫情问题。养猪这一个行业一度上了热门,让很多人都越来越重视对养猪这个行业的看法,甚至很多人都在开始拼命地投入进去。那今年对于农村里面养猪的情况之下,是否可以获得相对应的

    2021-12-10
    1130
  • 淘宝优惠购物详解(淘宝省钱方法有哪些)

    大家都知道,一家饭店如果加入了美团,你下单前没查,直接用原价购买,那么你就亏大了。同样的道理,淘宝天猫80%的店家,都加入了营销让利活动,你如果太懒,下单前没查,那你就花冤枉钱了。下面我分享一下,抖音上传疯了的淘宝省钱技能,用2个小妙招,

    2021-11-30
    1760
  • 高档进口水果在哪进货(进口水果有哪些)

    来源:嘉兴日报-嘉兴在线随着人民生活水平的提高,进口水果成为我国水果多样化的来源和重要补充,消费者对其需求越趋增大。榴莲、菠萝蜜、山竹、火龙果、凤梨、小菠萝……在海广兴精品水果交易中心,各种热带水果琳琅满目。哪些进口水果最受消费者欢迎?今年的价格行情…

    2022-01-18 随笔
    2290

发表评论

登录后才能评论