Dev/Java

Java - 숫자맞추기 게임 (Math.random(), .equals(), BufferedReader)

surimi🍥 2020. 9. 9. 15:12
반응형


 숫자맞추기 게임
1~100사이의 난수를 발생하여 맞추는 게임

[실행결과]
숫자 입력 : 50
50보다 큽니다

숫자 입력 : 90
90보다 작습니다

...

숫자 입력 : 87
딩동뎅 xx번만에 맞추셨습니다

continue(Y/N) : n
프로그램을 종료합니다
 

 

 

더보기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class NumberGame {

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int randomNum;
		int round = 0;
		String yn;

		System.out.println(" * 숫자맞추기 게임");
		System.out.println("1~100사이의 난수를 발생하여 맞추는 게임");
		System.out.println();

		randomNum = (int) (Math.random() * 100 + 1); // 난수 1 ~ 100

		for (; true;) { // 무한반복문
						// = while(true)
						// = for(;;)

			System.out.println("답 : " + randomNum); // 지우기

			round++;

			System.out.print("숫자 입력 : ");
			int userInput = Integer.parseInt(br.readLine());

			if (userInput > randomNum) {
				System.out.println(userInput + "보다 작습니다.");
			}

			else if (userInput < randomNum) {
				System.out.println(userInput + "보다 큽니다.");
			}

			else {
				System.out.println("딩동댕 " + round + "번만에 맞추셨습니다.");
				System.out.println("=============================");
				round = 0;

				// 계속? Y/N
				while (true) {
					System.out.print("Continue(Y/N) : ");
					yn = br.readLine();
					System.out.println();

					if (yn.equals("n") || yn.equals("N") || yn.equals("Y") || yn.equals("y")) { 
						break; // Y 또는 N 이 입력되었으므로 while 무한루프 종료.
					}
				}

				if (yn.equals("n") || yn.equals("N")) {
					System.out.println("게임을 종료합니다."); 
					break;	// 게임 종료
				}

				System.out.println("게임을 계속합니다.");
				randomNum = (int) (Math.random() * 100 + 1); // randomNum 재생성
			}

		} // for 반복문

	}

}
반응형