/** * 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