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 문 종료
		}		
		
	}
}

+ Recent posts