숫자 맞추기 게임


import java.util.Random;
import java.util.Scanner;
/* 숫자 맞추기 게임 */
public class Blog {

	public static void main(String[] args) {
		new Byul();                                                                  
	} 
}

class Byul {
	Scanner sc;
	Random rd;

	Byul() {
		sc = new Scanner(System.in);	// 스캐너 생성
		rd = new Random();				// 난수 도구 생성
		System.out.println(getTitle());	// 타이틀 출력 함수 호출
		controller();					// 아래 컨트롤러 함수 호출
		sc.close();						// 스캐너 종료
	}

	void controller() {					
		if (input() == 1) 				// 사용자 입력값 확인 후
			main();						// 아래 메인 함수 호출
	}

	void main() {
		int number = getNumber();					// 난수 생성 함수 호출, 난수 값 number에 저장
		boolean isWon = false;						// 게임 승패 결과에 따라 행동 제어용 boolean

		for (int i = 0; i < 10; i++) {				// 기회 10번 -> 반복문 10바퀴
			System.out.println("숫자를 입력해주세요 : ");
			int input = input();					// 입력값 저장
			if (input == number) {					// 미리 저장된 난수와 입력값 비교
				System.out.println("일치");
				isWon = true;						// 일치 시 boolean 값 변경 밑 프로그램 종료
				break;
			} else if (input > number) {									
				System.out.println("Down ===> " + (9 - i) + "번 남아 있습니다."); // 입력값이 저장된 수 보다 큰 경우
			} else {
				System.out.println("Up ====> " + (9 - i) + "번 남아 있습니다.");	// 일치, 큰 경우 제외의 경우의 수는 무조건 작은 경우다
			}
		}
		if (!isWon)
			System.out.println("숫자: " + number);	// 10번 기회 동안 숫자를 맞추지 못하면 정답을 표시
	}

	String getTitle() {
		StringBuilder sb = new StringBuilder();
		sb.append("************************\n\n");
		sb.append("   숫자 맞추기 v 1.0\n\n");
		sb.append("\tdesigned by Byul\n\n");
		sb.append("************************\n");
		sb.append("[ 게임시작 1 ]");
		sb.append("[ 게임종료 2 ]");

		return sb.toString();
	}

	int getNumber() {
		return rd.nextInt(100) + 1;
	}

	int input() {
		return sc.nextInt();
	}
}

댓글

이 블로그의 인기 게시물

substring 예제: 문자열을 입력 받아 한 글자씩 회전시켜 모두 출력하는 프로그램을 작성하라

배열, 리스트, 해쉬셋 연습 : 1 부터 45 까지 중복하지 않는 숫자 6개 생성하는 프로그램

다형성 추가정리, instanceof