Lv 3
- 게임 기록 통계
- 지금 시도하는 게임이 몇 번째 게임인지 기록합니다.
- 사용자가 정답을 맞힐 때까지의 “시도 횟수”를 기록하고 게임이 끝났을 때, 총 시도 횟수를 출력합니다.
- 프로그램 시작 및 정답을 맞히는 경우, 출력 개선에서와 같은 안내 문구를 출력하고, 2를 입력하면 게임의 시도 횟수를 출력합니다.
// 예시
환영합니다! 원하시는 번호를 입력해주세요
1. 게임 시작하기 2. 게임 기록 보기 3. 종료하기
2 // 2번 게임 기록 보기 입력
< 게임 기록 보기 >
1번째 게임 : 시도 횟수 - 14
2번째 게임 : 시도 횟수 - 9
3번째 게임 : 시도 횟수 - 12
...
- 출력 개선
- 실행 및 정답을 맞힌 경우, 표시되는 안내문구 선택지 개선
- 3을 입력하면 게임이 종료됩니다.
- 이전의 게임 기록들도 초기화됩니다.
- 실행 및 정답을 맞힌 경우, 표시되는 안내문구 선택지 개선
- 게임 시작할 때 1, 2, 3 이외의 입력값에 대해서는 오류 메시지 노출
수정 사항 및 아이디어
1. 게임 기록 통계 -> 클래스 만들거나, MatchNumbers 클래스 내에서 해결
2. 출력 개선 -> 그냥 하면 될듯
3. 오류 메시지 노출 -> 예외 처리 추가
쉬운 것부터 2, 3, 1 순으로 처리.
예외 처리 중 비상 ㅋㅋㅋㅋㅋㅋㅋ
int begin () {
System.out.println("* 숫자 야구 게임 *");
System.out.println("1. 게임 시작하기 2. 게임 기록보기 3. 종료하기");
Scanner inputValue = new Scanner(System.in);
int input = inputValue.nextInt();
boolean valid = false;
while (!valid) {
try {
if (!(input==1 || input==2 || input==3)) {
System.out.println("잘못된 입력입니다");
System.out.println("1, 2, 3 중 하나를 입력하세요");
} else {
valid = true;
}
} catch (InputMismatchException e) {
System.out.println("1, 2, 3 중 하나를 입력하세요");
}
}
return input;}
에서 4를 입력하면 무한 루프 발생 !!!!
코드의 위치도 매우 중요하다...
동작 순서를 생각하면서 문제 해결 !
1. 게임 기록 통계 -> 클래스 만들거나, MatchNumbers 클래스 내에서 해결
GameRecord 클래스를 만든다.
MatchNumbers 클래스 안에 trialCounts 속성을 만든다.
MatchNumbers 클래스 안에 operate 메서드가 동작하면 trialCounts ++ 하기로 하자.
trialCounts는 GameRecord 클래스에서 trialCounts 속성을 get할 수 있도록 하자.
++++++++++++++++++++
Lv 2 에서 단순히 게임을 다시 하는 기능을 추가할 게 아니라,
// 예시
환영합니다! 원하시는 번호를 입력해주세요
1. 게임 시작하기 2. 게임 기록 보기 3. 종료하기
1 // 1번 게임 시작하기 입력
< 게임을 시작합니다 >
숫자를 입력하세요
위와 같은 방식으로 나와야한다는 걸 알았다.
요구 사항을 면밀히 파악하는 게 최우선일텐데 이를 놓치다니....!!
반성해야겠다.
다시 수정 드가자 ~~
++++++++++++++ 반복 실행 하다보니 컴퓨터가 가져오는 정답 숫자가 크기가 작은 것들부터 나열된다는 것을 알게 됐다.
자바에서 난수 만들기
https://tes1194.tistory.com/28
Set에 대해
https://tes1194.tistory.com/30
요약 :
1. 원하는 동작 순서에 맞게 코드의 위치를 조정하라
2. 요구 사항을 정확하게 파악하라
'Java > 기타' 카테고리의 다른 글
숫자 야구 게임 Lv 4 (14) | 2024.09.22 |
---|---|
숫자 야구 게임 Lv2 (1) | 2024.09.13 |
숫자 야구 게임 Lv1 (1) | 2024.09.12 |
1, 2주차 과제 다시 하기. (4) | 2024.09.07 |
계산기 만들기 (0) | 2024.09.06 |