drexqq

[Java ,자바] 랜덤숫자 맞추기 (random number game) 본문

공부노트/개인공부!

[Java ,자바] 랜덤숫자 맞추기 (random number game)

drexqq 2020. 5. 24. 19:05
728x90
반응형

Java를 이용해서 랜덤 숫자 맞추기 게임을 만들어보았다.

 

랜덤 숫자 맞추기 규칙

 

랜덤 숫자는 1 ~ 100 사이에 있는 하나의 수이다.

사용자는 1 ~ 100 사이의 수를 입력하여서 정해진 랜덤 숫자를 찾아야 한다.

기회는 총 10번이다.

 

기회를 모두 소진하거나 정답을 입력 시 replay 여부 체크

'Y' 또는 'y' 입력 시 랜덤 숫자 생성부터 다시 실행

'N' 또는 'n'이나 다른 문자 입력 시 게임 종료

 

재도전을 한다면 다시 랜덤 숫자를 만들어서 도전하게 된다.

 

코드

package main;

import java.util.Scanner;

public class practice {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 메세지
		String answer = null;
		// 리플레이 변수
		char yn;
		boolean replay = false;
		while (!replay) {
			// 게임 시작시 코인 초기화
			int coin = 10;
			// 랜덤숫자 1 ~ 100 생성
			System.out.println("1 ~ 100사이의 랜덤숫자를 찾아보세요!");
			int rnum = ((int)(Math.random() * 100) + 1);
			// 정답 변수
			boolean right = false;
			// 정답이 아니거나 코인이 1개 이상일때 실행
			while (coin > 0 && !right) {
				// 유저 숫자 입력
				System.out.println("숫자를 입력해주세요.");
				// 입력숫자
				int num = sc.nextInt();
				// 입력숫자 유효성 변수
				boolean pass = false;
				// 입력 숫자 유효성 체크
				while (!pass) {
					if (num <= 0 || num >= 100) {
						System.out.println("1 ~ 100사이의 숫자를 입력해주세요 !");
						num = sc.nextInt();
						pass = false;
					}
					else {
						pass = true;
						// 통과시 기회 감소
						coin--;
					}
					// 결과 메세지 선택
					if (num > rnum)			answer = "입력하신 숫자가 너무 큽니다.";
					else if (num < rnum)	answer = "입력하신 숫자가 너무 작습니다.";
					else if (num == rnum)	answer = "정답입니다.";
				}
				System.out.println(answer);
				if (num == rnum) {
					//정답시 바로 탈출
					right = true;
				}
				else {
					System.out.println(coin+"회 남았습니다.");
					right = false;
				}
			}
			// 재도전 여부 체크
			System.out.println("다시 하시겠습니까 ? Y(y) / N(n)");
			yn = sc.next().charAt(0);
			if (yn == 'Y' || yn == 'y') {
				replay = false;
			}
			else {
				replay = true;
			}
		}		
	}
}
728x90
반응형
Comments