728x90
2021/03/14(일)
숨겨진 카드의 수를 맞추는 게임을 만들어보자. 0에서 99까지의 임의의 수를 가진 카드를 한 장 숨기고 이 카드이 수를 맞추는 게임이다. 아래의 화면과 같이 카드 속의 수가 77인 경우를 보자. 수를 맞추는 사람이 55라고 입력하면 "더 높게". 다시 70을 입력하면 "더 높게"라는 식으로 범위를 좁혀가면서 수를 맞춘다. 게임을 반복하기 위해 Y/N을 묻고 N인 경우 종료된다.
내 풀이
import java.util.Scanner;
public class MatchingCardsGame {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int inputNumber = 0;
int count = 0;
String yesOrNo = null;
while(true) {
int high =99;
int low = 0;
System.out.println("수를 결정하였습니다. 맞추어 보세요");
System.out.println(low+"-"+high);
//0부터 99까지의 수 중 랜덤값 설정.
int randomNumber = (int)(Math.random()*99);
while(true) {
count ++;
System.out.print(count+">>");
inputNumber = scan.nextInt();
if(inputNumber< randomNumber) {
System.out.println("더 높게");
low = inputNumber; //입력한 숫자보다 크기때문에 입력숫자~high사이에 수를 출력하기 위해
System.out.println(low+"-"+high);
}
else if(inputNumber > randomNumber) {
System.out.println("더 낮게");
high = inputNumber; //입력한 숫자보다 작기때문에 low~입력숫자 사이에 수를 출력하기 위해
System.out.println(low+"-"+high);
}
//숫자를 맞췄을 경우
else
break;
}
// 숫자를 맞췄을 경우
if(inputNumber==randomNumber) {
System.out.println("맞았습니다.");
System.out.print("다시하시겠습니까(y/n)>>");
yesOrNo = scan.next();
char tmp = yesOrNo.charAt(0);
//y를 누르면 값을 초기화 시키고 카드게임 재시작
if(tmp=='y'|| tmp=='Y') {
count=0;
scan.nextLine();
continue;
//n을 누르면 게임 종료
}else if(tmp=='n'|| tmp=='N')
System.exit(0);
//y/n이 아닌 다른 문자가 들어왔을 때
else {
count=0;
scan.nextLine();
System.out.println("y와n만 입력가능합니다.");
}
}
}
}
}
이중 반복문과 조건문을 이용해서 문제 해결!
변수의 이름을 알기 쉽게 지을것!
728x90
'코딩 연습장 > JAVA' 카테고리의 다른 글
[명품 자바 프로그래밍] Java 11장 실습 문제 (0) | 2021.04.08 |
---|---|
Java awt, swing을 사용한 계산기 화면 만들기 (0) | 2021.04.06 |
자바 4장 연습문제(클래스와 객체)-2 (0) | 2021.03.19 |
자바 4장 연습문제(클래스와 객체)-1 (0) | 2021.03.19 |
자바 3장 연습문제(반복문)-4 (0) | 2021.03.18 |