Java/명품 Java Programming

3장 Open Challenge

M_master 2022. 1. 26. 00:31

숨겨진 카드의 수를 맞추는 게임을 만들어보자. 0에서 99까지의 임의의 수를 가진 카드를 한 장 숨기고 이 카드의 수를 맞추는 게임이다. 아래의 화면과 같이 카드 속의 수가 77인 경우를 보자. 수를 맞추는 사람이 55라고 입려하면 "더 높게", 다시 70을 입력하면 " 더 높게"라는 식으로 범위를 좁혀가면서 수를 맞춘다. 게임을 반복하기 위해 y/n을 묻고, n인 경우 종료된다.

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

public class openChallenge {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		while(true) {
			// final int ran = (int) (Math.random() * 100);
			Random r = new Random();
			final int ran = r.nextInt(100);
			
			System.out.println("수를 결정하였습니다. 맞추어 보세요\n0-99");
				
			int count = 1;
			while(true) {
				System.out.print(count +">>");
				int num = sc.nextInt();
				
				if(ran < num) {
					System.out.println("더 낮게");
				} else if(ran > num) {
					System.out.println("더 높게");
				} else {
					System.out.println("맞았습니다.");
					break;
				}
				
				count++;
			} // while end
			
			System.out.print("다시하시겠습니까(y/n)");
			String reStart = sc.next();
			
			if(reStart.equals("y") == false) {
				System.out.println("게임 종료");
				break;
			}
		} // while end
		
		sc.close();
	}
}

 

- 랜덤으로 생성된 숫자를 상수로 만들어 보호

- Math.random를 사용 시 괄호를 감싸서 사용을 안 하면 램덤 숫자가 0으로 생성되는 결과가 발생

- 게임 다시 시작 시 y 글자가 아닌 다른 문자 혹은 문장이 입력되면 게임을 무조건 종료.

728x90