AlgorithmQuiz/MineSweeper/angss
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * Excercise Logic skill * @since 2006.5.3 * @author angss * TODO 키보드에서 받은 값의 크기만큼의 지뢰밭을 표시한다. N*M크기. * o: 지뢰없는 밭. * *: 지뢰. * */ public class MinesweeperTest2 { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { String sin = null; char ch = 0; char[][] cfinal = new char[10][10]; String[] ct = null; char count = '0'; BufferedReader stdin1 = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter a line: "); if((sin = stdin1.readLine())!= null) { /* * TODO 입력 받은 지뢰 밭을 그려주기. */ ct = sin.split(" "); for(int a=0; a < ct.length; a++) { for (int i = 0; i < ct[a].length(); i++) { ch = ct[a].charAt(i); if ( ch == '*' ) cfinal[a][i] = ch; else cfinal[a][i] = '0'; System.out.print(cfinal[a][i]); } System.out.println(""); } // MS_Search sr = new MS_Search(); // sr.search(); /** * TODO 지뢰 갯수가 찍히는 부분 */ for(int b=0; b < ct.length; b++) { if (b == 0) { System.out.println(""); System.out.println("Field #" + b+1); } else { for (int i = 0; i < ct[b].length() ; i++) { if(cfinal[b][i] == '*') { for (int j = b-1; j < b+2; j++) { if(j >= 0) { for (int k = i-1; k < i+2; k++) { if(k>=0) { if(b==j && i==k) { cfinal[j][k] = '*'; } else { count = cfinal[j][k]; if ( count != '*') { count++; cfinal[j][k] = count; } } } } //k for() loop End. } } //j for() loop End. } //if(cfinal[b][i] == '*') End. } } //else End. } /** * TODO 지뢰을 찾은 배열을 화면에 표시한다. */ for(int c=1; c < ct.length; c++) { for (int i = 0; i < ct[c].length(); i++) { System.out.print(cfinal[c][i]); } System.out.println(""); } } } }