JAVA-숫자야구 게임

2023. 1. 18. 17:22코딩일기/JAVA

import java.util.Random;
import java.util.Scanner;

public class Baseball {
	public static void main(String[] args) {
		int[] num = new int[3];
		int num1, num2, num3, number;
		Random random = new Random();
		Scanner scan = new Scanner(System.in);
		
        // 중복값 제거
		for (int i = 0; i < 3; i++) {
			num[i] = random.nextInt(10);
			for (int j = 0; j < i; j++) {
				if (num[i] == num[j]) {
					i--;
					continue;
				}
			}
		}

		for (int i = 0; i < 10; i++) {
			int strike = 0, ball = 0;
			System.out.print(i + 1 + "회: ");
			number = scan.nextInt();
			num1 = number / 100;            //100의 자리를 num1에 저장!
			num2 = number / 10 - num1 * 10; //10의 자리를 num1에 저장!
			num3 = number % 10;             //1의 자리를 num1에 저장!
			if (num1 == num[0]) {
				strike++;
			}
			if (num2 == num[1]) {     //바로 위아래 if 문은 strike!
				strike++;
			}
			if (num3 == num[2]) {
				strike++;
			}
			if (num1 == num[1] || num1 == num[2]) {
				ball++;
			}
			if (num2 == num[0] || num2 == num[2]) {  // 위아래 if문은 ball!
				ball++;
			}
			if (num3 == num[0] || num3 == num[1]) {
				ball++;
			}
			if (strike == 3) {
				System.out.println("정답!!");
				break;
			}
			System.out.println("S" + strike + " " + "B" + ball);
		}
		System.out.println(num[0] * 100 + num[1] * 10 + num[2]);
	}
}

 

우선 처음 짠 코드다...if문이 매우 지저분해 보이니까 바꿔보도록 하자!

반응형

'코딩일기 > JAVA' 카테고리의 다른 글

JAVA-Array (기본형 배열)  (0) 2023.01.20
JAVA-연습문제_20230119  (0) 2023.01.19
JAVA-String  (0) 2023.01.19
JAVA-Random  (0) 2023.01.18
JAVA-Scanner  (0) 2023.01.18