반응형
랜덤 함수를 이용하여 0~99 사이의 임의의 정수를 생성하고 Up & Down을 통해서 숫자를 찾는 게임. 0~99 사이의 숫자의 경우 아무리 운이 안 좋아도 이분 탐색으로 7번 이내로 찾을 수 있기 때문에 각 게임당 기회는 5회로 제한을 하였습니다. 그리고 정수 외의 다른 문자가 입력될 시 try-catch문으로 예외처리를 할 수 있도록 코드를 짰습니다.
<코드>
package blog;
import java.util.InputMismatchException;
import java.util.Random;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean game = true;
while(game)
{
System.out.println("Up & Down 게임입니다. 정답을 맞혀보세요. 기회는 5번입니다.");
Random r = new Random();
int k = r.nextInt(100); // 0~99까지의 임의의 정수 생성
int n = 0;
for (int i = 1; i <= 5; i++)
{
System.out.print(i+">>");
try {
n = sc.nextInt(); // 숫자 입력
if(n < 0 || n >99){
System.out.println("잘못 입력하였습니다. 다시 입력해주세요.");
i--;
continue;
}
if(n == k) // 정답 시
{
System.out.println("축하드립니다 정답입니다.");
break;
}
else if(n < k) // Up
{
System.out.println("Up");
}
else //(n > k) Down
{
System.out.println("Down");
}
}
catch (InputMismatchException e) {
System.out.println("잘못 입력하였습니다. 다시 입력해주세요.");
sc.next();
i--;
continue;
}
}
if(n != k)
{
System.out.println("아쉽습니다. 5회안으로 맞히지 못하였습니다.");
System.out.println("정답은 "+k+" 였습니다.");
}
System.out.println("다시하시겠습니까?(y/n)");
if(sc.next().equals("n"))
{
game = false;
break;
}
}
System.out.println("게임이 종료되었습니다.");
}
}
<실행결과>
Up & Down 게임입니다. 정답을 맞혀보세요. 기회는 5번입니다.
1>>50
Up
2>>70
Up
3>>90
Down
4>>80
Up
5>>85
Down
아쉽습니다. 5회안으로 맞히지 못하였습니다.
정답은 81 였습니다.
다시하시겠습니까?(y/n)
y
Up & Down 게임입니다. 정답을 맞혀보세요. 기회는 5번입니다.
1>>50
Up
2>>75
Down
3>>67
Down
4>>63
Down
5>>61
Up
아쉽습니다. 5회안으로 맞히지 못하였습니다.
정답은 62 였습니다.
다시하시겠습니까?(y/n)
y
Up & Down 게임입니다. 정답을 맞혀보세요. 기회는 5번입니다.
1>>a
잘못 입력하였습니다. 다시 입력해주세요.
1>>-1
잘못 입력하였습니다. 다시 입력해주세요.
1>>101
잘못 입력하였습니다. 다시 입력해주세요.
1>>acdsvd
잘못 입력하였습니다. 다시 입력해주세요.
1>>50
Down
2>>25
축하드립니다 정답입니다.
다시하시겠습니까?(y/n)
n
게임이 종료되었습니다.
반응형
'☕️JAVA' 카테고리의 다른 글
[JAVA] 자바 String to Int, Int to String 형변환 (0) | 2021.10.07 |
---|---|
[JAVA] 명품 자바 에센셜 연습문제 3장 이론&실전 문제 풀이 (2) | 2021.01.11 |
[JAVA] 자바 예외처리(Exception), try-catch-finally문 (0) | 2021.01.09 |
[JAVA] 자바 2차원 배열 생성 방법 (0) | 2021.01.08 |
[JAVA] 자바 for-each문 사용법 및 예제코드 (0) | 2021.01.07 |