/**
* Time(ZeroJudge): 68 ms
* Date: 2010-01-28
*
* @author Kurorido
*/
import java.util.Scanner;
public class JAVA {
public static void main(String[] args) {
boolean debug = false;
Scanner sc = new Scanner(System.in);
int fieldCount = 1;
while(sc.hasNext()) {
// get row & col
int row = sc.nextInt();
int col = sc.nextInt();
if(row == 0 && col == 0)
System.exit(0);
// make field
char[][] field = new char[row][col];
//StringBuffer field = new StringBuffer();
// read then make field
for(int i = 0; i < row; i++) {
//field.append(sc.next() + "\n");
String tmp = sc.next();
for(int j = 0; j < tmp.length(); j++) {
field[i][j] = tmp.charAt(j);
}
}
// field debug
if(debug)
for(int i = 0; i < field.length; i++) {
for(int j = 0; j < field[i].length; j++) {
System.out.print(field[i][j]);
}
System.out.println();
}
// output
StringBuffer output = new StringBuffer();
output.append("Field #" + fieldCount++ + ":\n");
for(int i = 0; i < row; i++) {
for(int j = 0; j < col; j++) {
// if mine
if(field[i][j] == '*') {
output.append('*');
} // if not mine, count value
else {
int value = 0;
// left-top
if(i-1 > -1 && j-1 > -1)
if(field[i-1][j-1] == '*')
value++;
// top
if(i-1 > -1)
if(field[i-1][j] == '*')
value++;
// right-top
if(i-1 > -1 && j+1 < col)
if(field[i-1][j+1] == '*')
value++;
// left
if(j-1 > -1)
if(field[i][j-1] == '*')
value++;
// right
if(j+1 < col)
if(field[i][j+1] == '*')
value++;
// left-down
if(i+1 < row && j-1 > -1)
if(field[i+1][j-1] == '*')
value++;
// down
if(i+1 < row)
if(field[i+1][j] == '*')
value++;
// right-down
if(i+1 < row && j+1 < col)
if(field[i+1][j+1] == '*')
value++;
output.append(value);
}
}
output.append('\n');
}
System.out.println(new String(output));
}
}
}
含Debug版,可以將讀入的踩地雷盤印出,只要將debug變數改為true即可。
No comments:
Post a Comment