본문 바로가기
문제풀이/Java

[Java] Baseball Game 야구게임 (10번의 기회)

by AngieLee 2021. 5. 10.
import java.util.*;

public class Baseball {
	public static void main(String[] args) {
	
		Scanner sc = new Scanner(System.in);
		
		// 선언부 (변수)
		int com[] = new int[3];
		int user[] = new int[3];
		boolean clear;
		
		// 초기화
		clear = false;
		
		// Random 할당
		while(true) {
			com[0] = (int)(Math.random() * 9) +1;
			com[1] = (int)(Math.random() * 9) +1;
			com[2] = (int)(Math.random() * 9) +1;
			
			if(com[0] != com[1]
				&& com[0] != com[2]
					&& com[1] != com[2]) {
				break;
			}
		}
		
		for(int i=0; i<com.length; i++) {
			System.out.println("com["+i+"] = "+com[i]);
		}
	
		//////////////////////////////////////////// loop
		int w = 0;
		
		while(w < 10) {
			
			// user 입력
			while(true) {
				for(int i=0; i<user.length; i++) {
					System.out.print((i+1)+"번째 수 입력 : ");
					user[i] = sc.nextInt();
				}
				
				if(user[0] != user[1]
					&& user[0] != user[2]
						&& user[1] != user[2]) {
					break;
				}
				System.out.println("같은 숫자를 입력하셨습니다. 다시 입력해 주세요.");
			}
			
			// 비교						-> 탈출
			// 스트라이크, 볼
			int strike, ball;
			strike = 0;
			ball = 0;
			
			// ball
			for(int i=0; i<com.length; i++) {
				for(int j=0; j<user.length; j++) {
					if(user[i] == com[j] && i != j) {
						ball++;
					}
				}
			}
			
			// strike
			for(int i=0; i<com.length; i++) {
				if(user[i] == com[i]) {
					strike++;
				}
			}
			
			// 맞췄을 경우
			if(strike > 2) {
				clear = true;
				break;
			}
			
			// 메시지 출력
			System.out.println(strike+"strike "+ball+ "ball 입니다.");
			
			w++;
		}
		////////////////////////////////////////////
		
		// 결과 출력
		if(clear) {
			System.out.println("Game Clear!");
		}else {
			System.out.println("Game Over..");
		}
	}
}