[2015年NOIP普及组] 扫雷游戏
7.[2015年NOIP普及组] 扫雷游戏
l 分析:根据题意,开一个数组记录是否是雷,是雷就标记为一,如果不是雷,那么他的八个方位全加起来,有雷的方位就会+1,这样最后结果就是他周围雷的数量。
l
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int n,m;
char a;
bool b[105][105];
memset(b,0,sizeof(b));
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>a;
if(a=='*') b[i][j]=1;//如果是雷,就标记为1
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(b[i][j]!=1)//不是雷
{
cout<<b[i-1][j-1]+b[i-1][j+1]+b[i][j-1]+b[i][j+1]+b[i+1][j-1]+b[i+1][j+1]+b[i+1][j]+b[i-1][j];
}//八个方位相加,是雷的+1
else cout<<"*";
}
cout<<endl;
}
return 0;
}