一、实现扫雷的基本思路

1.游戏部分创建两个二维数组,display和hide数组。hide数组是存放炸弹的数组,有炸弹是1,没有炸弹是0;display数组是用来展示地雷的数组,未知显示‘*’,排查的地方显示周围8个地方地雷总数量

2.初始化二维数组

3.实现玩家扫雷的逻辑:玩家输入一个坐标,踩雷游戏结束,未踩雷显示显示周围8个地方地雷总数量

4.排查结束,游戏胜利,玩家可重来或退出

游戏效果展示

代码思路:

1.需要两个二维数组,1个用来展示,一个用来放置地雷

//创建两个二维数组char display[ROW + 2][COL + 2] = { 0 };char hide[ROW + 2][COL + 2] = { 0 };//棋盘的初始化memset(display, '*', (ROW + 2) * (COL + 2));memset(hide, '0', (ROW + 2) * (COL + 2));
//放置地雷
//地雷是字符1 ,安全是0
void PutMine(char arr[ROW + 2][COL + 2], int row, int col)
{int x = 0;int y = 0;int count = 0;while (1){x = rand() % row + 1;y = rand() % row + 1;if (arr[x][y] == '0'){arr[x][y] = '1';++count;}if (count == MineCount)break;}
}

2.玩家开始扫雷

扫雷逻辑

//玩家开始扫雷int x = 0;int y = 0;int win = 0;while (1){printf("请输入坐标,中间加上空格:");scanf("%d %d", &x, &y);Player(display, hide, x, y);//判断是输赢还是继续int ret = IfWin(hide, x, y);Print(display, ROW, COL);printf("\n");++win;if (ret == 0)break;if (win == ROW*COL- MineCount){printf("恭喜你,赢得游戏,退出或者再玩一次\n");break;}}
}
//玩家开始扫雷
void Player(char display[ROW + 2][COL + 2], char hide[ROW + 2][COL + 2], int x, int y)
{while (1){//判断坐标合法性if (x >= 1 && x <= ROW && y >= 1 && y <= COL){//数这个坐标周围8个格子共有多少个雷int count = 0;for (int i = x - 1; i <= x + 1; i++){for (int j = y - 1; j <= y + 1; j++){if (i == x && j == y)continue;if (hide[i][j] == '1')++count;}}display[x][y] = count + '0';break;}else{printf("坐标非法,请重新输入:");scanf("%d %d", &x, &y);}}
}//判断是否踩雷
//猜到雷返回0
//安全返回1int IfWin(char hide[ROW + 2][COL + 2], int x, int y)
{if (hide[x][y] == '1'){printf("你踩到雷了,游戏失败\n");return 0;}return 1;
}

扫雷C语言实现(简单版)相关推荐

  1. C语言实现简单版Linux的cp命令

    C语言实现简单版的Linux的cp命令 前言: ​ 这是我的第一篇CSDN文章,写的不够好的地方有请各路大神指正.本人也是接触代码时间很短,在这里希望把自己学习到的知识写成一些有用的代码.后面有空的话 ...

  2. c语言之简单版的图书检索系统

    开发一个简单版的图书检索系统,图书信息包括:编号.作者.书名.出版社.类型.价格.出版日期. 采用简单的c语言语法,结合结构体及自定义函数实现,让大一初学者也能够看懂. 该程序可实现功能(可根据个人需 ...

  3. perl语言入门第七版中文_python和c语言哪个简单

    python相较C语言入门要简单的多. C语言是一门面向过程.抽象化的通用程序设计语言,广泛应用于底层开发.C语言能以简易的方式编译.处理低级存储器. C语言是仅产生少量的机器语言以及不需要任何运行环 ...

  4. java简单版扫雷实现

    java简单版扫雷实现 实现原理 直接贴代码 成果展示 实现原理 扫雷实现第一步就是生成棋盘,第二步就要生成每个棋子,定义棋子属性是否是地雷,第三部就是给不是地雷的棋子赋值(附近多少地雷). 直接贴代 ...

  5. C语言编写扫雷游戏,超简单

    C语言编写扫雷游戏,超简单 1.扫雷游戏的流程 2.代码编写 3.总结 通过学习C语言的基础知识,基本上是理解了大部分内容,现在就通过所学的知识,写个简单的扫雷游戏,加深对基础知识的理解,正所谓实践是 ...

  6. C语言实现简单电话簿(注释版)

    C语言实现简单电话簿(注释版,可直接运行) 简单的小组实验记录,用到了文件读写.链表操作的知识,没有什么高端的东西,包含一个比较好看的煮菜单,字符画画得很开心. 文件有两个,一个.c文件(函数体以及主 ...

  7. verilog 自动售货机状态机实现_基于Verilog语言的简单自动售货机-数电课设报告(最终版)最新版...

    <基于Verilog语言的简单自动售货机-数电课设报告.docx>由会员分享,可免费在线阅读全文,更多与<基于Verilog语言的简单自动售货机-数电课设报告(最终版)>相关文 ...

  8. c语言小游戏 精简_C语言开发简易版扫雷小游戏

    C 语言开发简易版扫雷小游戏 本文给大家分享的是一个使用 C 语言开发的命令行下的简易版扫雷小游戏, 本身没有什么太 多的技术含量, 只不过是笔者的处女作, 所以还是推荐给大家, 希望对大家学习 C ...

  9. c语言数组简单实现童年回忆——扫雷

    目录 1.扫雷简介 2.游戏实现思路 3.代码详细分析 1.扫雷简介 不知道大家再次看见这张图有什么感受,自从win10更新后将扫雷移除,似乎这个我们的童年回忆正与我们渐行渐远.而今天我们要做的就是利 ...

  10. 狼人杀c语言代码,1089 狼人杀-简单版——C/C++实现

    题目 1089 狼人杀-简单版 (20 point(s)) 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局"狼人杀&quo ...

最新文章

  1. APPium连接真机输入框中输入的内容与代码中不一致
  2. mysql数据库学习(一)--基础
  3. thinkphp5.0 使用paginate 分页后 foreach 循环体内不能处理数据的解决办法
  4. ae导出gif插件_AE小白必看教程,围观AE老司机如何使用AE导出gif图片
  5. Qt4_字符串、字节数组和变量
  6. opencv+resize+padding+concate
  7. @程序员,使用了 SQL 就不能用 DevOps?
  8. SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
  9. qt 读取mysql数据库_qt 读取mysql数据库
  10. echarts柱形图x轴y轴互换_echarts图表x,y轴的设置
  11. 秋招Java岗,心态大崩,今年的面试真的有必要这么卷吗?
  12. 六十甲子亡命安葬山向宜忌
  13. java 发送Email BY 163.com
  14. 【PHP】PHP MySQL问题 phpinfo() 没有显示MySQL模块
  15. Shell编程之if简单判断两个数字大小
  16. TPAMI 2022 | 金字塔池化的骨干网络,各大任务都涨点!南开达摩院联合推出P2T
  17. 干翻一切的王者语言到底是谁?
  18. 自定义TAG标签页面聚合
  19. C语言将一组数输入到一维数组中
  20. 谷歌Chrome操作系统:简单超凡

热门文章

  1. [go 语言学习笔记] 7天用Go从零实现分布式缓存GeeCache 「已完结」
  2. set-script是什么?
  3. 我们该如何有效管理时间
  4. html设置边界感,边界感是什么意思
  5. 软件“十年”,是罗列也是总结
  6. ROS安装和 控制小海龟画圆
  7. MySQL-05-锁
  8. H5常见问题及解决方案手册
  9. “长鞭效应”已威胁到淘宝等电商平台发展
  10. kali Linux联网配置