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\"); }}

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

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

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

(0)
nan
上一篇 2021-07-30
下一篇 2021-07-30

相关推荐

  • 女性婚后尿多是什么原因(女性起夜频繁什么原因)

    在经济高速发展的今天,女性的社会地位越来越高,受教育的程度也很高,工作的能力也越来越强,一点也不亚于男人。在家庭生活中,话语权很重,家庭地位说一不二,有很多女性自己的收入甚至比丈夫还高。看重生活质量的女性大有人在,婚后出

    2021-10-21
    0
  • 新品线上推广案例赏析(产品线上推广方案怎么做)

    最关键的要素就是有效流量,有效流量就是找到会购买你的产品、持续使用你产品、分享你产品的人。那如何才能获得有效流量呢?具体操作的时候可以分为五个步骤:用户调查内容制作寻找投放渠道数据回收内容调优这五个步骤的核心思维和具体操作方法:(

    2021-11-30 随笔
    0
  • 眼球经济是什么意思(眼球经济的好与坏)

    眼球经济是依靠吸引公众注意力获取经济收益的一种经济活动。现代人的时间大多碎片化,太长的文章没人看,太枯燥乏味的文章没人看。人们往往喜欢看搞笑的,短篇的,能引起观看欲望的文章,这对于我们是一个很好的放松、消遣的方式。让我们更好的投入到工作生活中。商家

    2022-01-03
    0
  • 鲸鱼住在哪个海洋里(蓝鲸是哪里)

    毫无疑问,如今世界上最大的动物就是蓝鲸了,先上图,看一下它和飞机、公交车的大小比较。蓝鲸是世界上个头最大和体长最长的动物,上面第一张图中和飞机的比较有些失实,但是和普通卡车与大象的比较基本写实,第二张…

    2022-02-26 随笔
    0
  • 土地计量单位亩与平方米的换算(二分地等于多少平方米)

    在老家种地,土地都是以亩为单位进行计量的。那么一亩等于多少平方米呢?在古代,长度单位有丈、尺、寸等。一亩=60平方丈。也就是宽6丈、长10丈的土地就是一亩。用现在的单位米来和丈、尺做换算的话:1)长度换算1米=3尺1丈=10尺2)面积换算1平方丈=

    2021-09-28
    0
  • 赞美茶的诗句经典语录(与茶有关的诗句名言)

    喝茶本身是一种文化,也是一种享受。喝茶可以因心情的不同而喝出不同的味道。也可以因不同的地点、不同的茶类、不同的年龄、不同的阅历,喝出不同的感受。中华茶文化历史悠久,在古人眼中,饮茶时更追求意境之美,讲究环境、摆件以及其中心境,时而茶花

    2021-10-29 用户投稿
    0

发表回复

登录后才能评论