seong

18 숫자 야구 본문

자바/자바 실습

18 숫자 야구

hyeonseong 2022. 7. 29. 17:49
package ex07;

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

public class NumBaseBall {

	public static void main(String[] args) {
		// 숫자는 1~9까지 3자리의 임의의 숫자 -> o
		// 숫자와 위치가 모두 맞을경우 : 스트라이크
		// 숫자는 맞지만 위치가 틀렸을경우 : 볼
		// 숫자와 위치가 모두 틀렸을경우 : 아웃
		// 기회는 5번
		// 3아웃 -> 게임 끝
		int st;
		int ball;
		int out = 0;
		int game = 0;

		int rdnum[] = new int[3]; // 랜덤 숫자
		int user[] = new int[3]; // 사용자 숫자

		Random rd = new Random(); // 랜덤 객체 생성
		for (int i = 0; i < rdnum.length; i++) {
			rdnum[i] = rd.nextInt(10) + 1; // 0~10 까지의 난수 생성
// +1의 이유 -> nextInt(num)의 경우에는 0 ~ (num-1)사이의 특정수를 반환 하기 때문
			System.out.println(rdnum[i]);// 랜덤 숫자 확인을 위한 코드
		}

// game start ---------------------
		Scanner sc = new Scanner(System.in);
		while (true) {
			st = 0;
			ball = 0;
			if (game == 5) {
				System.out.println("5번 기회 모두 사용 패배!");
				System.out.println("정답은 " + rdnum[0] + rdnum[1] + rdnum[2] + " 였습니다!");
				break;
			} else if (out == 3) {
				System.out.println("3out 게임 종료");
				System.out.println("정답은 " + rdnum[0] + rdnum[1] + rdnum[2] + " 였습니다!");
				break;
			}
			// 사용자 숫자 입력 받기
			System.out.println("숫자 3개를 입력해주세요.");
			for (int i = 0; i < user.length; i++) {
				user[i] = sc.nextInt();
			}
			// 스트라이크,ball
			for (int i = 0; i < user.length; i++) {
				if (user[i] == rdnum[i]) {
					st++;
				}
				for (int j = 0; j < user.length; j++) {
					if (user[i] == rdnum[j] && user[i] != rdnum[i]) {
						ball++;
					}
				}

			}
			if (st == 3) {
				System.out.println(st + "스트라이크 입니다. 승리!");
				break;
			}
			System.out.println(st + "스트라이크" + ball + "볼");
			game++;
			continue;

		}
	}
}