[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;

}

posted @ 2022-08-12 09:35  4lovls  阅读(86)  评论(0)    收藏  举报