import java.util.Scanner;
// 扫雷
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
in.nextLine();//
char[][] arr = new char[n][m];
// 初始化
for (int i = 0; i < n; i++) {
String line = in.nextLine();
arr[i] = line.toCharArray();
}
in.close();
// 存储结果
String[][] res = new String[n][m];
for (int i = 0; i < n; i++) {// 行
for (int j = 0; j < m; j++) {// 列
// 雷,直接输出打印
if ('*' ==arr[i][j]) {
res[i][j] = "*";
} else {
// 计算雷邻格,输出数字
// 8个方向:
int cnt = 0;// 雷邻格计数
int tempI = i;// 参照点 i
int tempJ = j;// 参照点 j
int pTimes = 3;
for (int p = tempI - 1; pTimes-- > 0; p++) {
int qTimes = 3;
for (int q = tempJ - 1; qTimes-- > 0; q++) {
if (!(p == i && q == j) // 跳过自身(i,j)
&& ((p >= 0 && q >= 0) && (p < n && q < m))) {// 保证下标在边界内
if ('*' == arr[p][q]) {
cnt++;
}
}
}
}
res[i][j] = cnt + "";
}
}
}
for(String[] rArr : res){
for(int i = 0;i<rArr.length;i++){
System.out.printf("%s",rArr[i]);
}
System.out.println();
}
}
}
以(i,j)为中心的8个方向

京公网安备 11010502036488号