개발/Java

Up & Down

dev-bleck 2022. 10. 23. 13:51
package org.UpDown;

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

public class UpDown {

	static Scanner scan = new Scanner(System.in);
	static Random rand = new Random();
	
	public static void main(String[] args) {
		// 0 ~ 100 Random 출력
		int a = rand.nextInt(100) + 1;
		
		// 변수 설정
		int cnt = 5;
		int start = 0;
		int end = 100;			

		// cnt가 0 보다 클 경우에만 게임 실행
		while(cnt > 0) {
			if(cnt == 5) {
				System.out.println("===========================================");
			}
			System.out.printf("%d~%d 사이의 수를 입력하시오 (잔여 카운트 : %d) >> ", start, end, cnt);
			int userNum = scan.nextInt();

			if(userNum > 0 && userNum <= 100) {
				if(a > userNum && (userNum >= start && userNum <= end)) {
					System.out.printf("나온 수가 입력한 수 [%d] 보다 높습니다.\n", userNum);
					start = userNum;
					cnt--;
				} else if(a < userNum && (userNum >= start && userNum <= end)) {
					System.out.printf("나온 수가 입력한 수 [%d] 보다 낮습니다.\n", userNum);
					end = userNum;
					cnt--;
				} else if(a == userNum && (userNum >= start && userNum <= end)) {
					System.out.printf("축하합니다! 정답입니다!");
					String yn = "";
					while (!(yn.equals("Y") || yn.equals("N")) ) {
						System.out.printf("다시 하시겠습니까?(Y / N) >> ");
						yn = scan.next();						
						if(yn.equals("Y")) {
							cnt = 5;
							start = 0;
							end = 100;
							a = rand.nextInt(100) + 1;
							break;
						} else if(yn.equals("N")) {
							System.out.println("끝났습니다.");
							return;
						} else {
							System.out.println("Y 또는 N을 입력해주세요.");
						}
						
					}
					
				} 
				
			} 
			
			// cnt가 0이면 재도전 여부를 입력받음
			if(cnt == 0) {			
				String yn = "";
				while (!(yn.equals("y") || yn.equals("n")) ) {
		            System.out.print("카운트가 모두 소진되었습니다. 계속 하시겠습니까?(Y / N) >> ");
		            yn = scan.next();
					if(yn.equals("Y")) {
						cnt = 5;
						start = 0;
						end = 100;
						a = rand.nextInt(100) + 1;
						break;
					} else if(yn.equals("N")) {
						System.out.println("끝났습니다.");
						return;
					} else {
						System.out.println("Y 또는 N을 입력해주세요.");
					}
					
				}

			} 
			
		}
		
	}
		
}

728x90