扫雷游戏是一款十分经典的单机小游戏。它的精髓在于,通过已翻开格子所提示的周围格地雷数,来判断未翻开格子里是否是地雷。
现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格的周围格地雷数。
#include<iostream>
#include<cmath>
#define t 10000+10
char a[t][t];
int b[t][t]={0};
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
if (a[i][j]=='*')
{
b[i-1][j-1]++;
b[i-1][j]++;
b[i-1][j+1]++;
b[i][j-1]++;
b[i][j+1]++;
b[i+1][j-1]++;
b[i+1][j]++;
b[i+1][j+1]++;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if (a[i][j]=='*') cout<<"*";
else cout<<b[i][j];
}
cout << endl;
}
return 0;
}