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("");
}
}
}
}
BioHackersNet