Java/명품 Java Programming
3장 Open Challenge
M_master
2022. 1. 26. 00:31
숨겨진 카드의 수를 맞추는 게임을 만들어보자. 0에서 99까지의 임의의 수를 가진 카드를 한 장 숨기고 이 카드의 수를 맞추는 게임이다. 아래의 화면과 같이 카드 속의 수가 77인 경우를 보자. 수를 맞추는 사람이 55라고 입려하면 "더 높게", 다시 70을 입력하면 " 더 높게"라는 식으로 범위를 좁혀가면서 수를 맞춘다. 게임을 반복하기 위해 y/n을 묻고, n인 경우 종료된다.
import java.util.Random;
import java.util.Scanner;
public class openChallenge {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {
// final int ran = (int) (Math.random() * 100);
Random r = new Random();
final int ran = r.nextInt(100);
System.out.println("수를 결정하였습니다. 맞추어 보세요\n0-99");
int count = 1;
while(true) {
System.out.print(count +">>");
int num = sc.nextInt();
if(ran < num) {
System.out.println("더 낮게");
} else if(ran > num) {
System.out.println("더 높게");
} else {
System.out.println("맞았습니다.");
break;
}
count++;
} // while end
System.out.print("다시하시겠습니까(y/n)");
String reStart = sc.next();
if(reStart.equals("y") == false) {
System.out.println("게임 종료");
break;
}
} // while end
sc.close();
}
}
- 랜덤으로 생성된 숫자를 상수로 만들어 보호
- Math.random를 사용 시 괄호를 감싸서 사용을 안 하면 램덤 숫자가 0으로 생성되는 결과가 발생
- 게임 다시 시작 시 y 글자가 아닌 다른 문자 혹은 문장이 입력되면 게임을 무조건 종료.
728x90