본문 바로가기

language/java 과제

2. [java] BaseBallGame 만들기

728x90
반응형
package Assignment;

import java.util.Scanner;

/**
 * 중복되지 않는 세 자리 숫자(정답)를 입력하고,
 * 세 자리 숫자를 최대 3번 입력받아 스트라이크, 볼, 아웃을 출력해준다.
 * 스트라이크 : 자리와 숫자가 일치하는 개수
 * 볼 : 자리는 다르지만 숫자가 일치하는 개수
 * 아웃 : 틀린 횟수
 */
public class BaseBallgame {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		int input = scanner.nextInt();
		int A = input/100;
		int B = (input/10) % 10;
		int C = input % 10;
		
		int cnt = 0;
		
		while(true) {
			cnt++;
			System.out.print(cnt+"회 입니다. 예상숫자를 입력해주세요! >> ");
			int BASE = scanner.nextInt();
			int str = 0;
			int ball = 0;
			int out = 0;
			if(BASE/100 == A) {
				str++;
			}
			else if(BASE/100 == B) {
				ball++;
			}
			else if(BASE/100 == C) {
				ball++;
			}
			else {
				out++;
			}
			
			if((BASE/10)%10 == B  ) {
				str++;
			}
			else if((BASE/10)%10 == A) {
				ball++;
			}
			else if((BASE/10)%10 == C) {
				ball++;
			}
			else {
				out++;
			}
			
			if(BASE%10 == C) {
				str++;
			}
			else if(BASE%10 == B) {
				ball++;
			}
			else if(BASE%10 == A) {
				ball++;
			}
			else {
				out++;
			}
			
			if (str == 3) {
				System.out.println("축하합니다. 정답입니다!");
				break;
			}
			else {
				System.out.println("틀렸습니다. 스코어는 ["+str+"스트라이크, "+ball+"볼,"+out+"아웃] 입니다.");
			}
		}
	}
}

 

아직 배운것이 많지 않아 랜덤변수라던가, 스위치문 등 없이 간단하게 짠 알고리즘입니다.

반응형

'language > java 과제' 카테고리의 다른 글

3. [java] 연산자 문제  (0) 2021.06.14
1. [java] 변수와 시스템 입력 이용하기  (0) 2021.06.10