扫雷游戏--给出 n 行 m 列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数
【代码】扫雷游戏--给出 n 行 m 列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。
·
题目简介 :
P2670 [NOIP 2015 普及组] 扫雷游戏 - 洛谷

AC代码:
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
int n, m;
char st[101][101];//记录每个位置有 / 无 雷
int boom[101][101];//记录每个位置周围九宫格雷的个数
void change(int i , int j)
{
for (int a = -1; a <= 1; a++)
{
for (int b = -1; b <= 1; b++)
{
int ti = i + a, tj = j + b;
if (ti >= 1 && ti <= n && tj >= 1 && tj <= m)
{
boom[ti][tj] += 1;
}
}
}
}
signed main()
{
cin >> n >> m; // n 行 m 列
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
cin >> st[i][j];
if (st[i][j] == '*')
{
change(i , j);
}
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
if (st[i][j] == '*')
cout << st[i][j];
else
cout << boom[i][j];
}
cout << endl;
}
return 0;
}
更多推荐



所有评论(0)