痞老板玩扫雷

在这里插入图片描述

#include <iostream>
#include <cstring>
using namespace std;
char a[1001][1001],b[1001][1001];
int main()
{
    
    
	int n,m,i,j;
	cin>>n>>m;
	for(i=1;i<=n;i++)
	{
    
    
		for(j=1;j<=m;j++)
		{
    
    
			cin>>a[i][j];
		}
	}
	//从8个方向讨论
	for(i=1;i<=n;i++)//i=0,j=0时a[0][0]=0.
	{
    
    
		for(j=1;j<=m;j++)
		{
    
    
			if(a[i][j]!='*')
			{
    
    
				int ans=0;//每经过一个字符,就要重新计数
				if(a[i][j+1]=='*')
				ans++;
				if(a[i][j-1]=='*')
				ans++;
				if(a[i-1][j]=='*')
				ans++;
				if(a[i+1][j]=='*')
				ans++;
				if(a[i-1][j-1]=='*')
				ans++;
				if(a[i-1][j+1]=='*')
				ans++;
				if(a[i+1][j-1]=='*')
				ans++;
				if(a[i+1][j+1]=='*')
				ans++;
				b[i][j]=ans+'0';//把int转为char
				
			}
			else if(a[i][j]=='*')
			b[i][j]='*';
		}
	}
	for(i=1;i<=n;i++)
	{
    
    
		for(j=1;j<=m;j++)
		{
    
    
			cout<<b[i][j];
		}
		cout<<endl;
	}
	return 0;
 } 

猜你喜欢

转载自blog.csdn.net/weixin_51713993/article/details/113806826
今日推荐