본문 바로가기
답안지/명품 자바 에센셜

[Open Challenge] CHAPTER 03 반복문과 배열 그리고 예외 처리

by upself 2023. 6. 7.
728x90
명품 자바 에센셜

명품 자바 에센셜

황기태

자바 프로그래밍에 빠져들게 하는 재미있고 쉬운 해설서명품 자바 에센셜은 한 학기에 자바의 기초를 습득할 수 있도록 작성된 책이다. 자바 언어에 대한 쉬운 설명과 의미 있는 예제를 도입하여 이론이 프로그래밍으로 이어지게 하고, 이해도 높은 삽화와 그림으로 본문에 쉽게 몰입할 수 있도록 하였다. 그러므로 이 책은...

 

 

 

 

 

 

 

[Open Challenge]

숨은 번호를 맞추는 게임을 만들어보자. 컴퓨터는 0에서 99까지의 임의의 수를 선택하고, 사용자는 이 수를 맞추는 게임이다. 아래와 같이 컴퓨터가 가진 수가 98인 경우를 보자. 사용자가 55라고 입력하면 "더 높게", 다시 70을 입력하면 "더 높게"라는 식으로 메시지를 출력하고 범위를 좁혀가면서 수를 맞춘다. 게임을 반복하기 위해 y/n을 묻고 "n"이 입력되면 종료한다.
Up & Down게임입니다. 숨겨진 수를 맞추어 보세요.
0-99
1>>50
더 높게
50-99
2>>75
더 높게
75-99
3>>86 
맞았습니다.
다시하시겠습니까(y/n)>>y
Up & Down게임입니다. 숨겨진 수를 맞추어 보세요.
0-99
1>>55
더 낮게
55-99
2>>40
맞았습니다.
다시하시겠습니까(y/n)>>n​
더보기
      [힌트]
    • 컴퓨터가 숨길 수를 읨의로 선택하기 위해 다음과 같이 Random 클래스를 이용한다.
import java.util.Random;
Random r = new Random();
int k = r.nextInt(100); // 0-99까지 임의의 정수 생성

    • "다시하시겠습니까(y/n)>>"에 대한 답으로 사용자가 "y"나 "n"을 입력한다. 이때 사용자로부터 입력받은 문자열과 비교하기 위해서는 다음 코드를 이용한다. 
if(scanner.next().equals("n")) {
	//종료하도록 작성한다.
}

 

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

public class op3_1 {

	public static void main(String[] args) {
		Random random = new Random();

		Scanner scan = new Scanner(System.in);

		while (true) {
			// System.out.println(r); // 랜덤 숫자 보여주기
			int r = random.nextInt(100);
			int count = 0, number = 0, max = 99, min = 0;
			System.out.println("Up & Down게임입니다. 숨겨진 수를 맞추어 보세요");

			while (true) {
				count++;
				System.out.println(min + "-" + max);
				System.out.print(count + ">>");
				number = scan.nextInt();

				if (number < r) {
					System.out.println("더 높게");
					max = number;
					continue;
				} else if (number > r) {
					System.out.println("더 낮게");
					min = number;
					continue;
				} else {
					System.out.println("맞았습니다.");

				}
				break;
			}
			System.out.print("다시하시겠습니까(y/n)>>");
			String text = scan.next();
			if (text.equals("n")) {
				break;
			} else if (text.equals("y")) {
				random = new Random();
				r = random.nextInt(100);
				// System.out.println(r); // 랜덤 숫자 보여주기
				count = 0;
				continue;

			} // 2 while
		} // 1 while

		// scan.close();

	}// main

}

숨은 번호 맞추기 게임(up & down 게임)

 

반응형