#include <cstdio>
#include <string.h>
using namespace std;
bool field[102][102];
int getNum(int m,int n)
{
return field[m-1][n-1]+field[m-1][n]+field[m-1][n+1]
+field[m][n-1]+field[m][n+1]
+field[m+1][n-1]+field[m+1][n]+field[m+1][n+1];
}
void solve(int m,int n)
{
memset(field,0,sizeof(field));
char ch;
for(int i=0;i<m;i++)
{
scanf("%c",&ch);
for(int j=0;j<n;j++)
{
scanf("%c",&ch);
if(ch=='*') field[i+1][j+1]=true;
}
}
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(field[i][j])printf("*");
else printf("%d",getNum(i,j));
}
printf("\n");
}
}
int main()
{
int m,n;
int num=1;
while(1)
{
scanf("%d%d",&m,&n);
if(m==0 && n==0)
break;
if(num>1) printf("\n");
printf("Field #%d:\n",num++);
solve(m,n);
}
return 0;
}
UVa 10189 Minesweeper
最新推荐文章于 2019-03-06 22:55:48 发布
本文介绍了一个使用C++实现的简易扫雷游戏程序。该程序通过读取输入来设置雷区,并根据雷区情况计算出每个格子周围的雷数。通过对二维数组的操作实现了游戏逻辑,包括标记雷区及计算非雷区域的数值。
217

被折叠的 条评论
为什么被折叠?



