본문 바로가기

Java/java 기초

랜덤 숫자 맞추기 게임

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

public class mainClass {
	public static void main(String[] args) {
		/*
		 * 
		 * random -> 1개 1 ~ 100
		 * 
		 * ---------------- loop 기회는 10번 75
		 * 
		 * 입력 >> 50 message:너무 작습니다
		 * 
		 * 입력 >> 70 message: 너무 큽니다
		 *
		 * 
		 * 1. 선언부
		 * 
		 * 2. 랜덤값 산출 (1 ~ 100)
		 * 
		 * ------------------ loop 3. User 입력
		 * 
		 * 4. 판정 ------------------ 5. 결과
		 */

		// 선언
		int count = 10;
		int randNum = (int) (Math.random() * 100) + 1;
		int userNum;
		Scanner scanner = new Scanner(System.in);
		// 판정

		// for문으로 구현
		for (int i = 0; i < 10; i++) {
			System.out.println("남은 횟수 : " + count + "회");
			userNum = scanner.nextInt();
			if (userNum < 0 || userNum > 100) {
				System.out.println("값을 다시 입력하세요");
				i = i + 1;
			} else {

				if (userNum == randNum) {
					System.out.println("답은 " + randNum + "입니다");
					System.out.println("축하합니다 " + (10 - count) + " 회 만에  맞추셨습니다");
					break;
				} else if (userNum > randNum) {
					System.out.println("DOWN");
					count--;
				} else if (userNum < randNum) {
					System.out.println("UP");
					count--;
				}

				if (count == 0) {
					System.out.println("게임 오버");
					System.out.println("답은 " + randNum + "입니다");
					break;
				}
			}
		}

//		 while 문으로 구현
		count = 10;
		int j = 0;
		System.out.println(randNum);
		while (j < 10) {
			System.out.println("남은 횟수 : " + count + "회");
			userNum = scanner.nextInt();
			if (userNum < 0 || userNum > 100) {
				System.out.println("값을 다시 입력하세요");
				continue;
			} else {
				if (userNum == randNum) {
					System.out.println("답은 " + randNum + "입니다");
					System.out.println("축하합니다 " + (10 - count) + " 회 만에  맞추셨습니다");
					break;
				} else if (userNum > randNum) {
					System.out.println("DOWN");
					count--;
				} else if (userNum < randNum) {
					System.out.println("UP");
					count--;
				}

				if (count == 0) {
					System.out.println("게임 오버");
					System.out.println("답은 " + randNum + "입니다");
					break;
				}
			}
			j++;
		}

		// switch로 풀이
		int r_num, u_num;
		boolean clear;
		int w;
		// 초기화
		while (true) {
			clear = false;
			w = 0;
			// 2.Random 산출(1~ 100)
			r_num = (int) (Math.random() * 100) + 1;

			System.out.println("r_num = " + r_num);

			/////////////////////////////// loop
			while (w < 10) {

				// 3. User 입력
				System.out.print("user number = ");
				u_num = scanner.nextInt();
				// 4. 판정
				int findNum = 0;
				if (u_num > r_num)
					findNum = 1;
				else if (u_num < r_num)
					findNum = 2;
				else
					findNum = 3;

				// message
				switch (findNum) {
				case 1:
					System.out.println("too big");
					break;
				case 2:
					System.out.println("too smaill");
					break;
				case 3:
					System.out.println("bingo!!");
					clear = true;
					break;
				}
				if (clear) {
					break;
				}
				w++;
			}
			// 결과
			if (clear) {
				System.out.println("game clear!!");
			} else {
				System.out.println("game over..");
			}

			// replay ?
			String msg = "";
			System.out.print("replay OK(y/n) = ");
			msg = scanner.next();

			if (msg.charAt(0) != 'y' || msg.charAt(0) != 'Y') {
				System.out.println("good bye");
				break;
			} 
			System.out.println("restart game");
		}
	}
}