[样例输入]
4 4
*...
....
.*..
....
3 5
**...
.....
.*...
0 0
[样例输出]
Field #1:
*100
2210
1*10
1110
Field #2:
**100
33200
1*100
*/
package baseExerciseProject;
import java.util.Scanner;
public class MainMineweep {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int ForNum = 0;
while(true) {
int i = scanner.nextInt();
int j = scanner.nextInt();
if(i==0 && j==0) {
break;
}
ForNum++;
char [][]arr = new char[i][j];
int [][]arrtemp = null;
for (int i2 = 0; i2 < i; i2++) {
String temp = scanner.next();
char[]temA = temp.toCharArray();
for (int j2 = 0; j2 < j; j2++) {
arr[i2][j2] = temA[j2];
}
}
//获取新数组
arrtemp = getNewArr(arr);
//输出函数
printOut(arrtemp,ForNum);
}
System.out.println("*/");
}
public static void printOut(int [][]arrtemp,int ForNum) {
System.out.println("Field #"+ForNum+":");
for (int i = 0; i < arrtemp.length; i++) {
for (int j = 0; j < arrtemp[i].length; j++) {
if(arrtemp[i][j] < 0) {
System.out.print("*");
}else {
System.out.print(arrtemp[i][j]);
}
}
System.out.println();
}
}
public static int[][] getNewArr(char [][]arr) {
int [][]arrtemp = new int [arr.length][arr[0].length];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
if(arr[i][j]=='*') {
arrtemp[i][j] = -1000;//本身
if ( i-1 >= 0) {
arrtemp[i-1][j] ++;//上
if (j+1 <= arr[0].length-1) {
arrtemp[i-1][j+1] ++;//上右
}
if (j-1 >= 0) {
arrtemp[i-1][j-1] ++;//左上
}
}
if (i+1 <= arr.length-1) {
arrtemp[i+1][j] ++;//下
if (j+1 <= arr[0].length-1 ) {
arrtemp[i+1][j+1] ++;//右下
}
if (j-1 >= 0) {
arrtemp[i+1][j-1] ++;//下左
}
}
if (j+1 <= arr[0].length-1) {
arrtemp[i][j+1] ++;//右
}
if (j-1 >= 0) {
arrtemp[i][j-1] ++;//左
}
}
}
}
return arrtemp;
}
}