오늘 두 번째 개인과제인 숫자 야구 게임만들기라는 과제를 받았다.
숫자 야구 게임의 대략적인 목표와 요구사항
- 목표 : 컴퓨터가 생성한 3자리 숫자를 플레이어가 맞추는 게임
- 숫자에 대한 요구사항
- 각 자리는 1-9 사이의 숫자
- 동일한 숫자는 사용될 수 없다. 즉, 숫자는 중복되지 않아야 한다.
- ex) 333, 112, 119 불가능
- 게임 결과
- 각 시도에 대해 '스트라이크'와 '볼'의 개수를 출력하여 플레이어가 숫자를 맞출 수 있도록 유도한다.
숫자 야구 게임 기능 요구사항
- 정답 숫자 생성하기
- 정답을 맞추기 위해 숫자를 입력하기
- 결과값 출력 및 게임 로직 적용하기
- 정답과 입력값을 비교해 힌트를 “볼, 스트라이크, 아웃”으로 표시합니다.
- 스트라이크 : 입력값과 정답을 비교해 같은 자리에 같은 숫자가 있는 경우
- 볼 : 숫자는 같지만, 자리는 다른 경우
- 아웃 : 숫자도, 자리도 다른 경우
- 입력한 3자리 숫자가 정답과 같은 경우, 게임이 종료됩니다.
- 3 스트라이크’라면, 정답에 해당합니다.
- 정답일 때, 표시하고 싶은 메세지는 여러분이 지정해주세요.
- 올바르지 않은 입력값에 대해서는 오류 문구를 보여주세요.
- 입력값이 문자, 중복되는 값처럼 요구사항과 맞지 않을 경우
- 게임 이어서하기
- 정답을 맞출 때까지 계속해서 시도할 수 있어야 하며, 정답을 맞추면 축하 메시지를 출력한다.
- 입력값이 유효한지 검사하기
- 게임 기록 통계
- 지금 시도하는 게임이 몇 번째 게임인지 기록합니다.
- 사용자가 정답을 맞힐 때까지의 “시도 횟수”를 기록하고 게임이 끝났을 때, 총 시도 횟수를 출력합니다.
- 프로그램 시작 및 정답을 맞히는 경우, 아래와 같은 안내 문구를 출력하고, 2를 입력하면 게임의 시도 횟수를 출력합니다.
- 3을 입력하면 게임종료, 1 ~ 3 이외의 것들을 입력하면 오류 메세지 노출.
// 예시
환영합니다! 원하시는 번호를 입력해주세요
1. 게임 시작하기 2. 게임 기록 보기 3. 종료하기
2 // 2번 게임 기록 보기 입력
< 게임 기록 보기 >
1번째 게임 : 시도 횟수 - 14
2번째 게임 : 시도 횟수 - 9
3번째 게임 : 시도 횟수 - 12
// 예시
환영합니다! 원하시는 번호를 입력해주세요
1. 게임 시작하기 2. 게임 기록 보기 3. 종료하기
3 // 3번 종료하기 입력
< 숫자 야구 게임을 종료합니다 >
// 예시
환영합니다! 원하시는 번호를 입력해주세요
1. 게임 시작하기 2. 게임 기록 보기 3. 종료하기
4
올바른 숫자를 입력해주세요!
- 게임 난이도 조절
- 용자로부터 난이도를 입력받고, 그에 따라 숫자의 자릿수를 조정할 수 있습니다.
- 자리수는 3, 4, 5자리 숫자 중에서 선택할 수 있습니다.
- 3, 4, 5 이외의 값에 대해서는 예외처리
- 자리수를 입력하면 자동으로 게임이 실행됩니다.
// 예시
환영합니다! 원하시는 번호를 입력해주세요
0. 자리수 설정 1. 게임 시작하기 2. 게임 기록 보기 3. 종료하기
0 // 0번 자리수 설정 입력
설정하고자 하는 자리수를 입력하세요.
3
3자리수 난이도로 설정되었습니다.
< 게임을 시작합니다 >
숫자를 입력하세요
요구사항 정의 및 설계
이번에는 바로 구현을 하지않고 구현하기에 앞서 어떤 흐름으로 흘러가야할 지 그림판에 먼저 생각해 봤다.
이런식으로 3개의 클래스들의 흐름을 미리 생각해봤다
저번 계산기때는 그냥 무작정 구현하기 바빴는데 이렇게 클래스들을 어떻게 흘러가게 할 것인지 생각을 해보니 어떤식으로 코드를 짜면 좋을지 생각하는 시간을 가질 수 있어서 좋았다.
이걸 바탕으로 잘 만들어봐야겠다 ~
'TIL' 카테고리의 다른 글
[TIL] 9월 19일 (2) | 2024.09.19 |
---|---|
[TIL] 9월 13일 (1) | 2024.09.13 |
[TIL] 계산기 3레벨 마무리 (1) | 2024.09.10 |
[TIL] 계산기 3레벨 해보기 (6) | 2024.09.09 |
[TIL] 오늘은 금요일 ! (1) | 2024.09.06 |