c164-扫雷
题目描述
小爱正在编写一个扫雷游戏的出题模块。这个模块的输入是一张地图,标记了每个地雷的位置,地雷以*表示,空地以.表示。这个模块的输出是一个表格,统计了每个空地周围八个方格内的地雷数量。例如,给定一个初始地图:
*.*
...
*..
则应输出:
*2*
231
*10
请你帮助小爱来完成这个程序。
输入描述
第一行:两个正整数n和m;接下来有n×m个字符,表示每个方格是否存在地雷。
保证:1≤n, m≤100
输出描述
共计n×m个字符,表示每个方格周围地雷统计信息,若原本这个位置就有地雷,输出*。
输入样例
3 4
*..*
.**.
.*.*
输出样例
*33*
3**3
2*4*
//参考答案
#include <iostream>
using namespace std;
int dx[] = {-1,-1,-1, 0, 0, 1, 1, 1};
int dy[] = {-1, 0, 1,-1, 1,-1, 0, 1};
char b[110][110];
int main() {
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
cin >> b[i][j];
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j)
if (b[i][j] == '*')
cout << '*';
else{
int c = 0;
for (int k = 0; k < 8; ++k) {
int x = i + dx[k];
int y = j + dy[k];
if (1 <= x && x <= n && 1 <= y && y <= m && b[x][y] == '*')
++c;
}
cout << c;
}
cout<< '\n';
}
return 0;
}
标签:输出,游戏,int,扫雷,方格,模块,小爱,地雷
From: https://blog.csdn.net/m0_62288422/article/details/142436411