2015 IT 웹 기반 개발자과정/JAVA
JAVA Up & Down Game
by 한여름밤의코딩
2015. 10. 28.
import java.util.Random;
import java.util.Scanner;
import java.util.InputMismatchException;
public class GuessNumberGame {
public static void main(String[] args) {
int low, high; // 카드에 적힌 수의 범위
int card; // 카드에 적힌 번호 값(숨기는 값, 정답)
Random r = new Random(); // 난수 발생기 생성
Scanner scanner = new Scanner(System.in); // 키보드 입력기 생성
// "n"가 입력될 때까지 반복하여 게임을 진행한다.
while(true) {
int i=0; // 사용자의 시행 횟수
low = 0; // 카드 값의 최소 범위
high = 99; // 카드 값의 최대 범위
card = r.nextInt(100);// 0과 99 사이의 정수 난수(숨기는 값) 생성
System.out.println("수를 결정하였습니다. 맞추어 보세요");
while(true) {
System.out.println(low +"-" + high); // 값의 범위 출력
System.out.print(i+1+">>"); // 시행 횟수 출력
int n=0;
try {
n= scanner.nextInt(); // 수를 입력받는다.
}
catch(InputMismatchException e) { // 키 입력을 정수로 변환하지 못하는 예외 처리
System.out.println("정수만 입력하셔야 합니다!!");
scanner.nextLine(); // 나머지 모든 키를 읽어서 버린다.
continue; // 다시 시도한다.
}
if(n>high || n<low) // high와 low의 범위를 벗어난 경우
System.out.println("범위를 벗어났어요");
else {// 정상적인 범위의 수가 입력된 경우
if(n==card) {
System.out.println("맞았습니다.");
break; // while 문 종료
}
else if(n>card){ // 입력된 값이 정답보다 높은 범위의 수인 경우
System.out.println("더 낮게");
high = n;
}
else { // 입력된 값이 정답보다 낮은 범위의 수인 경우
System.out.println("더 높게");
low = n;
}
}
i++; // 시행 횟수 증가
} // end of while
System.out.print("다시하시겠습니까(y/n)>>");
if(scanner.next().equals("n"))
break; // while 문 종료
}// end of while
} // end of while
}