1970:【15NOIP普及组】扫雷游戏

时间限制: 1000 ms         内存限制: 131072 KB
提交数: 5638     通过数: 3495

【题目描述】

扫雷游戏是一款十分经典的单机小游戏。在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。

现在给出nn行mm列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。

注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。

【输入】

第一行是用一个空格隔开的两个整数nn和mm,分别表示雷区的行数和列数。

接下来nn行,每行mm个字符,描述了雷区中的地雷分布情况。字符’*’表示相应格子是地雷格,字符’?’表示相应格子是非地雷格。相邻字符之间无分隔符。

【输出】

包含nn行,每行mm个字符,描述整个雷区。用’*’表示地雷格,用周围的地雷个数表示非地雷格。相邻字符之间无分隔符。

【输入样例】

3 3
*??
???
?*?

【输出样例】

*10
221
1*1

【提示】

样例测试点#2:

输入:

2 3
?*?
*??
输出:

2*1
*21

对于 100%的数据, 1≤n≤100,1≤m≤1001≤n≤100,1≤m≤100。

输入不用讲,第二个嵌套循环就是判断下四周的雷,输出不讲。

#include<iostream>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
char a[n+1][m+1]={-1};
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]=='?'){
int cnt=48;
if(a[i][j+1]=='*') cnt++;
if(a[i+1][j]=='*') cnt++;
if(a[i][j-1]=='*') cnt++;
if(a[i-1][j]=='*') cnt++;
if(a[i-1][j+1]=='*') cnt++;
if(a[i+1][j-1]=='*') cnt++;
if(a[i+1][j+1]=='*') cnt++;
if(a[i-1][j-1]=='*') cnt++;
a[i][j]=cnt;
} }
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j];
}
cout<<endl;
}
return 0;

最新文章

  1. Android安全相关文章[不定期更新…]
  2. iOS App 无代码入侵的方法hook
  3. python实现支持并发、断点续传的Ftp程序
  4. Ubuntu16.04 操作
  5. 【CodeVS 1014】装箱问题
  6. 用vs2013编译lua源码方法
  7. HDU 2084 数塔
  8. [scalability] Find all documents that contain a list of words
  9. Java JNI调用c语言的dll测试
  10. javascript实现无缝上下滚动(转)
  11. (二)HTML5 - Web SQL 本地数据库
  12. 基于内容的自适应变长编码[CAVLC]
  13. Swift主题色顶级解决方案
  14. 《学习opencv》笔记——矩阵和图像处理——cvAnd、cvAndS、cvAvg and cvAvgSdv
  15. css中盒子宽高的auto
  16. JavaScript中编码函数escape,encodeURI,encodeURIComponent
  17. vue 数据绑定实现的核心 Object.defineProperty()
  18. 调试器GDB的基本使用方法
  19. yield send 的一些使用细节
  20. Kali linux Nessus &amp;Cracking Password

热门文章

  1. JavaScript 中如何拦截全局 Fetch API 的请求和响应?
  2. 【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
  3. Java 进阶P-8.1+P-8.2
  4. 深度剖析 Linux 伙伴系统的设计与实现
  5. ChatGPT集成之前,让我们复习一下即将过时的知识
  6. drf-序列化器、反序列化、反序列化校验
  7. Spring6 DI 依赖注入--Bean属性赋值
  8. Python实现类别变量的独热编码(One-hot Encoding)
  9. 合肥光源纵向震荡数据源相关PV的增补
  10. vue-cli框架的下载以及框架目录介绍