#include<stdio.h>
#include<string.h>
int main(){
int n,m;
char A[101][101];
char B[101][101];
scanf("%d%d",&n,&m);
getchar();
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
scanf("%c",&A[i][j]);
}
getchar();
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(A[i][j]=='*')B[i][j]=A[i][j];
else{
B[i][j]='0';
if(A[i-1][j]=='*')B[i][j]++;
if(A[i-1][j-1]=='*')B[i][j]++;
if(A[i-1][j+1]=='*')B[i][j]++;
if(A[i+1][j]=='*')B[i][j]++;
if(A[i+1][j-1]=='*')B[i][j]++;
if(A[i+1][j+1]=='*')B[i][j]++;
if(A[i][j+1]=='*')B[i][j]++;
if(A[i][j-1]=='*')B[i][j]++;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
printf("%c",B[i][j]);
}
printf("\n");
}
return 0;
}
这道题我用的是全图搜索,是地雷就直接写,不是雷就扫描周围8个相邻位置是否是雷(通过这道题也可以引出图的算法)