Java/기타

숫자 야구 게임 Lv3

열심히 해 2024. 9. 14. 23:58

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