Daily coding

Java Basic : day 4 - Example 01 : 숫자 맞추기 게임 (ramdom()) 본문

Language/Java_basic

Java Basic : day 4 - Example 01 : 숫자 맞추기 게임 (ramdom())

sunnnkim 2019. 11. 22. 18:35
package day4;

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

public class Ex01_RandomGame {

	public static void main(String[] args) {

		
		/*
		< Mini Game 만들기 > 
		random - > 1개 (1~100)
		뽑아서 저장
	예시 :
	------------------------------ loop 돌리기
		( rNum = 75, 기회 : 10번)
		입력 >> 50
	 	message : 너무 작습니다.
	 	입력 >> 99
	 	message : 너무 큽니다.
	 	입력 >> 75
	 	message : 정답입니다!
	 	...
	 	message : 기회를 모두 썼습니다.
	 	message : 정답 : 75
	 	
	-------------------------------
	
	1. 선언부
	
	2. Random 산출 (1~100)
	------ loop start -----
	3. User 입력
	
	4. 판정
	
	5. 결과
	 	
	 */
	
	Random r = new Random();
	Scanner sc = new Scanner(System.in);		
	
	// 선언 및 초기화
	int number;
	int chance;
	int userNum;
	boolean clear = false;		// 게임 성공 / 실패 구분
	
	while(true) {
	// 할당
	number = r.nextInt(100) + 1 ; //1~100까지 랜덤숫자 뽑기
	chance = 10;
	
	// 입력 및 판단
	System.out.println("<숫자 맞추기 게임>");
	while(chance != 0) {
		
		System.out.println("* 숫자를 입력하세요. ");
		while(true) {
			try {
				System.out.print(">> ");
				userNum = sc.nextInt();
				break;
		} catch (Exception e) {
				System.out.println("! 숫자를 입력하세요 !");
				sc.nextLine();
		}}
		
		if(userNum == number) {
			System.out.println("정답입니다!");
			System.out.println(" 정답 : " + number);
			clear = true;
			break;
		}
		else if(userNum > number ){
			chance--;
			System.out.println(" 너무 큽니다.");
			System.out.println("(남은 기회 : " + chance + "회)");
		}
		else {
			chance--;
			System.out.println(" 너무 작습니다.");
			System.out.println("(남은 기회 : " + chance + "회)");
		}
	}
	if(!clear) {
	System.out.println("실패 !!");
	System.out.println(" 정답 : " + number);
	}
	
	// replay?
	System.out.println(" Replay ? (y/n) ");
	System.out.print(">> ");
	String answer = sc.next();
	if(!answer.equalsIgnoreCase("y")) {
		System.out.println("게임 종료");
		break;
	}else {
		System.out.println("다시 시작 : ");
	}
	}
	}

}