热身赛—H - 扫雷?踩雷!!
扫雷游戏
#include <stdio.h>
#define N 101 //最大格数
char arr[N][N];
char brr[N][N];
int x[9] = {0, 0, 1, 1, 1, 0, -1, -1, -1}; //从一开始的八个方向
int y[9] = {0, 1, 1, 0, -1, -1, -1, 0, 1};
int main()
{int n, m;int sum = 0; //统计八个方向的地雷数字scanf("%d%d", &n, &m);for (int i = 0; i < n; i++){scanf("%s", arr[i]);getchar(); //接收换行符}for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){if (arr[i][j] == '?'){for (int z = 1; z <= 8; z++){if (i + x[z] >= 0 && i + x[z] < n && j + y[z] >= 0 && j + y[z] < m) //判断是否出界{if (arr[i + x[z]][j + y[z]] == '*'){sum++; //如果此时为地雷时}}}brr[i][j] = sum + '0'; //此处的?改为次数的地雷数sum = 0;}else{brr[i][j] = arr[i][j];}}puts(brr[i]);}return 0;
}
此题主要就是会用以二维数组为核心进行的周围遍历。就是设x、y的一维数组下标。还有就是如何把十进制的数码改为字符型sum + '0'
。三重循环复杂度有点高。。。。所以总体还是待优化。
热身赛—H - 扫雷?踩雷!!相关推荐
- 蓝桥杯 - 试题 H: 扫雷(思维)
题目大意:给出 nnn 个地雷和 mmm 个炸弹,都以 (x,y,r)(x,y,r)(x,y,r) 的形式给出,意义分别如下: 对于每个地雷,位于点 (x,y)(x,y)(x,y),爆炸后会波及半径为 ...
- 扫雷游戏是一款十分经典的单机小游戏。 问题 H: 扫雷游戏
题目描述 扫雷游戏是一款十分经典的单机小游戏.在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格).玩家翻开一个非地雷格时,该格将会出现一个数字--提示周围格子中有 ...
- 扫雷游戏的设计与实现
扫雷游戏的设计与实现 扫雷游戏的介绍与规则 扫雷游戏的具体实现 1.打印游戏菜单 2.创建置雷图与展示图 3.初始化两张地图 4.布置地雷 5.打印展示图(置雷图) 6.排查雷 7.统计周围雷数 8. ...
- C语言实现扫雷完整算法详解~(附完整代码~)
扫雷是一个常见小游戏,那么如何用C语言实现扫雷呢?学习了二维数组之后,我们可将扫雷的网格区域存储为二维数组,从而使用C语言实现扫雷. 目录 1.算法基本思路 2.算法详解 1.初始化数组与打印数组 2 ...
- C语言编写扫雷游戏【W5+字详细教学版,包教包会】
目录 前言 一.扫雷游戏 二.整体分析 三.游戏的实现 1.实现test文件 2.实现game.h文件 3.实现game.c文件 3.1 初始化棋盘 3.2 打印棋盘 3.3 埋放地雷 3.4 判断行 ...
- 扫雷游戏(利用最基础的C语言实现)
扫雷 扫雷游戏 1.菜单 2.初始化棋盘 3.打印棋盘 4.布置雷 5.排查雷 6.整体效果展示 7.代码分享 7.1 test.c 7.2 game.c 7.3 game.h 扫雷游戏 今天我们就要 ...
- 扫雷游戏(C语言实现)
目录 一.扫雷游戏规则简介 二.扫雷实现过程分析 三.流程图 四.分模板实现游戏 1.创建二维数组并将其初始化 2.布置雷 3.打印棋盘 4.开始排雷 5.获取雷的数量 6.胜利条件判断 五.代码总览 ...
- C语言实现扫雷完整代码讲解
扫雷是一款初学者能用C语言实现的益智小游戏,只需要用二维数组操作雷区即可. 算法详讲 : 游戏思路如下:点击雷区中的任一格子,如果该格子有雷,则游戏结束:如果该格子周围9个格子都不是雷,那么直接展开其 ...
- 第十三届蓝桥杯大赛软件赛省赛(b组c语言)
试题 A: 九进制转十进制 本题总分:5 分 [问题描述] 九进制正整数 (2022)9 转换成十进制等于多少? 这道题没什么说的,2*9*9*9+0*9*9+2*9+2*1=1478: 试题 B: ...
最新文章
- Mac 从Makefile 编译 Rocksdb 源码的一些注意事项
- 日志服务Flink Connector《支持Exactly Once》
- SQL Server 一些重要视图3
- java ase 加密_java实现ase加密解密
- 遍历Arraylist的方法:
- Debian下Cannot set LC_CTYPE to default locale: No such file or directory解决方法
- 存储过程 insert
- 底部导航栏使用BottomNavigationBar
- 我的前端笔记之 meta 篇
- 【滤波器】7. 带通滤波器
- 笔记本键盘失灵的修复方法
- php调用nexmo发送短信,在 Laravel 中 “规范” 的开发短信验证码发送功能
- Linux系统安全和应用
- 《国家中长期教育改革和发展规划纲要(2010-2020年)》读后感
- [乐意黎原创]OFO小黄车提示你有未完成订单/未知错误的解决方法
- 小小的纳豆居然有这么多好处,难怪岛国人为它疯狂
- 【情态动词练习题】Can / Could you
- 晨钟暮鼓----用青春,做这份爱情的血色葬礼
- 常见的网络故障以及解决方法
- 如何让administrator不出现在windows7系统登录界面