본문 바로가기
Java

[Java] 명품 자바프로그래밍 제 3장 Open Challenge

by graygreat 2017. 4. 23.
728x90
반응형


  숨겨진 카드의 수를 맞추는 게임을 만들어보자. 0에서 99까지의 임의의 수를 가진 카드를 한장 숨기고 이 카드의 수를 맞추는 게임이다. 아래의 화면과 같이 카드 속의 수가 12인 경우를 보자. 수를 맞추는 사람이 55라고 입력하면 "더 낮게", 다시 11이라고 입력하면 " 더 높게" 라는 식으로 범위를 좁혀가면서 수를 맞춘다. 

게임을 반복하기 위해 y/n을 묻고 n인 경우 종료된다.


import java.util.*;

public class GuessNumberGame {
    public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);
        Random r = new Random();

        while (true) {
            int k = r.nextInt(100);
            int min = 0, max = 99;
            System.out.println("수를 결정하였습니다. 맞추어 보세요");

            for (int i = 0;; i++) {
                System.out.printf("%d - %d\n", min, max);
                System.out.print(i + 1 + ">>");
                int num = scanner.nextInt();
                if (num > k) {
                    System.out.println("더 낮게");
                    max = num;
                } else if (num < k) {
                    System.out.println("더 높게");
                    min = num;
                } else if (num == k) {
                    System.out.println("맞았습니다.");
                    System.out.print("다시하시겠습니까(y/n)>>");
                    char select = scanner.next().charAt(0);
                    if (select == 'y')
                        break;
                    else if (select == 'n')
                        return;
                    else
                        System.out.println("잘못입력하셨습니다.");

                    // 이렇게도 사용가능.
                    // if (scanner.next().equals("y"))
                    // break;
                    // else if (scanner.next().equals("n"))
                    // return;
                    // else
                    // System.out.println("잘못입력하셨습니다.");
                }
            }
        }
    }
}



별로 어려운건 없당.ㅇㅅㅇㅅㅇㅅㅇㅅㅇㅅㅇ 자고싶다다다다두ㅏ두다다ㅜ

반응형

댓글