import java.util.Random;
import java.util.Scanner;
import java.util.InputMismatchException;
public class BaseballGame {
public static void main(String[] args) {
int Num[] = new int [3];
int Chk[] = new int [3];
int Answer , i , j, Strike , Ball , Cnt;
Random r = new Random(); // 난수 발생기 생성
Scanner scanner = new Scanner(System.in); // 키보드 입력기 생성
while(true) {
do {
Answer = r.nextInt(1000);// 0과 999 사이의 정수 난수(숨기는 값) 생성
Num[0] = Answer / 100;
Num[1] = (Answer / 10) % 10;
Num[2] = Answer % 10;
if (Num[0]!=Num[1] && Num[1]!=Num[2] && Num[0]!=Num[2]) break;
}while(true);
System.out.println("수를 결정하였습니다. 맞추어 보세요");
Cnt = 0;
while(true) {
Cnt = Cnt + 1;
System.out.println("세자리 숫자를 맞춰주세요"); // 값의 범위 출력
System.out.print(Cnt+1+">>"); // 시행 횟수 출력
String str;
int n=0;
try {
str = scanner.nextLine();
n = Integer.parseInt(str);
if (str.length()!=3) {
System.out.println("3자리 정수로 입력하셔야 합니다!!");
continue;
}
Chk[0] = n / 100;
Chk[1] = (n / 10) % 10;
Chk[2] = n % 10;
}
catch(NumberFormatException e) { // 키 입력을 정수로 변환하지 못하는 예외 처리
System.out.println("정수만 입력하셔야 합니다!!");
continue; // 다시 시도한다.
}
// Strike 카운터 확인.
Strike = Ball = 0;
for(i=0;i<3;i++) {
if (Num[i]==Chk[i]) Strike++;
}
// Ball 확인
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
if (i!=j && Num[i]==Chk[j]) Ball++;
}
}
System.out.printf("S = %d , B = %d\n", Strike , Ball);
if (Strike==3) break;
}
System.out.print("다시하시겠습니까(y/n)>>");
if(scanner.next().equals("n"))
break; // while 문 종료
}
}
}