package kr.or.ksmart.thisisJava.sample;
import java.util.Scanner;
public class numberHit {
static boolean playSituation = true;
static boolean victory = false;
static int randomNum = 0;
static int choiceNum = 0;
static int roundCount = 10;
static int endGameCount = 0;
static int choice = 0;
static int subChoice = 0;
static int endChoice = 0;
static Scanner sc = new Scanner(System.in);
public static void main() {
while(playSituation) {
if(endGameCount == 0) {
System.out.println("-------------------------------");
System.out.println("숫자맞추기 게임에 오신 것을 환영합니다.\n");
System.out.println(" 1.시작하기 2.종료하기");
System.out.println("-------------------------------");
} else if (victory == true) {
System.out.println("-------------------------------");
System.out.println(" 1.다시하기 2.나가기");
System.out.println("-------------------------------");
} else {
System.out.println("-------------------------------");
System.out.println(" 1.재도전하기 2.포기하기");
System.out.println("-------------------------------");
}
if(endGameCount == 0) {
choice = sc.nextInt();
}else {
endChoice = sc.nextInt();
//한번이라도 게임을 진행했지만 실패한 경우
if (endChoice == 2 && victory == false) {
System.out.println("난이도를 포기하셨습니다.");
endGameCount = 0;
continue;
//한번이라도 게임을 진행하고 승리한 경우
} else if(endChoice == 2 && victory == true){
endGameCount = 0;
continue;
}
}
switch(choice) {
// 난이도 선택
case 1:
if(endGameCount == 0) {
System.out.println("-------------------------------");
System.out.println(" 난이도를 선택해주세요");
System.out.println("1.쉬움 2.보통 3.어려움 4.이전으로");
System.out.println("-------------------------------");
subChoice = sc.nextInt();
}
if(subChoice == 4) {
break;
}else {
switch(subChoice) {
case 1:
randomNum = (int)(Math.random() * 50) + 1;
System.out.println("쉬움난이도는 1~50까지 숫자중 랜덤으로 하나의 숫자가 정해집니다.");
System.out.println("기회는 총 10번입니다.");
mainGame(subChoice);
break;
case 2:
randomNum = (int)(Math.random() * 100) + 1;
System.out.println("보통난이도는 1~100까지 숫자중 랜덤으로 하나의 숫자가 정해집니다.");
System.out.println("기회는 총 10번입니다.");
mainGame(subChoice);
break;
case 3:
randomNum = (int)(Math.random() * 1000) + 1;
System.out.println("어려움난이도는 1~1000까지 숫자중 랜덤으로 하나의 숫자가 정해집니다.");
System.out.println("기회는 총 10번입니다.");
mainGame(subChoice);
break;
}
}
break;
case 2:
//종료하기를 선택한경우 반복문 탈출
System.out.println("게임을 종료하셨습니다.");
playSituation = false;
break;
default:
System.out.println("잘못된 선택이에요");
}
}
}
//메인 게임 진행
public static void mainGame(int lvChoice) {
System.out.println("숫자를 입력해주세요");
for(int count = 0; count < 10 ; count++) {
System.out.print("입력 숫자 : ");
choiceNum = sc.nextInt();
//숫자를 맞춘경우
if(choiceNum == randomNum) {
switch(lvChoice) {
case 1:
System.out.println("정답입니다! 승리하셨습니다.\n다른 난이도도 도전해보세요");
break;
case 2:
System.out.println("정답입니다! 승리하셨습니다.\n어려움 난이도도 도전해보세요");
break;
case 3:
System.out.println("정답입니다! 당신은 숫자맞추기 마스터!");
break;
}
victory = true;
break;
//입력한 숫자가 정답보다 큰경우
}else if(choiceNum > randomNum) {
System.out.println("입력한 숫자가 정답보다 큽니다.");
System.out.println("남은 기회가 " + (roundCount - count - 1) + "번 남았습니다.");
//입력한 숫자가 정답보다 작은경우
}else if(choiceNum < randomNum) {
System.out.println("입력한 숫자가 정답보다 작습니다.");
System.out.println("남은 기회가 " + (roundCount - count - 1) + "번 남았습니다.");
}
//모든 기회를 다 사용한 경우
if(count == 9) {
System.out.println("기회를 다 사용하셨습니다.");
System.out.println("정답은 " + randomNum + "입니다.\n아쉽네요 다시한번 도전해보세요!");
victory = false;
}
}
endGameCount++;
}
}
실행 결과

'개발 언어 > JAVA' 카테고리의 다른 글
| 09.10 JAVA 변수 타입, 연산자, 주석 (1) | 2024.09.10 |
|---|---|
| 09.09 JAVA 프로그래밍 (0) | 2024.09.09 |