🏕 내일배움캠프/[Assignment] Ch2-2
[Ch 2][숫자 야구 게임] 5. 설계 (3) - 도전 기능(Lv 3)
레이제로
2024. 9. 25. 09:46
2. 설계
A. 객체 간 데이터 흐름과 관계도 & 객체의 역할
B. 기능 분해
- 정답 숫자 생성
- 세 자릿수
- 각 자리는 1부터 9 사이의 수
- 각 자리는 동일하지 않는(중복되지 않는) 수
- 입력의 유효성 검사
- 세 자리 수인가요? → 자릿수 검사
- 중복된 숫자가 없나요? → 중복 숫자 검사
- 입력값에 숫자만 포함되어 있나요? → 타입 검사
- 게임 진행 옵션에 포함되는 입력이 들어왔나요? → 유효성 검사
- 게임 기록 통계
- 해당 게임이 몇 번째 게임인지
- 해당 게임에서 정답을 맞힐 때까지의 시도 횟수
- 해당 게임이 몇 번째 게임인지
- 게임 로직 (1) - [Lv 1]
- 정답과 입력값을 비교하여, 힌트를 “볼, 스트라이크, 아웃”으로 표시합니다.
- 스트라이크 : 입력값과 정답을 비교해 같은 자리에 같은 숫자가 있는 경우
- 볼 : 숫자는 같지만, 자리는 다른 경우
- 아웃 : 숫자도, 자리도 다른 경우
- 정답을 맞힐 때까지 계속 시도할 수 있습니다.
- 입력한 세 자리 숫자가 정답과 같은 경우, 게임이 종료됩니다.
- 정답과 입력값을 비교하여, 힌트를 “볼, 스트라이크, 아웃”으로 표시합니다.
- 게임 로직 (2) - [Lv 2]
- 프로그램을 시작할 때, 안내문구를 출력합니다.
- 1을 입력하면, Lv 1의 게임 로직처럼 게임이 진행됩니다.
- "2. 게임 기록 보기”는 Lv 3에서 제시됩니다. 아직 구현하지 않습니다.
- 3을 입력하면, 게임이 종료됩니다.
- 정답을 맞히는 경우, 프로그램 시작할 때의 안내문구를 다시 출력합니다.
- 프로그램을 시작할 때, 안내문구를 출력합니다.
- 게임 로직 (3) - [Lv 3]
- Lv 2의 게임 로직과 동일하며, "2. 게임 기록 보기"가 추가됩니다.
- 2를 입력하면, 게임의 시도 횟수를 출력합니다.
- 게임이 끝났을 때, 총 시도 횟수를 출력합니다.
- 플레이어가 정답을 맞힐 때까지의 시도 횟수를 기록하고 게임이 끝났을 때, 총 시도 횟수를 출력합니다.
- Lv 2의 게임 로직과 동일하며, "2. 게임 기록 보기"가 추가됩니다.
- 출력
- 게임 시작 안내 문구 및 옵션
- 게임 시작하기
- 게임 기록 보기
- 종료하기
- 게임 시,
- 힌트 표시
- '스트라이크'와 '볼'의 개수
- 정답 맞히면,
- 정답 표시 : 축하 메시지
- 정답을 맞힐 때까지의 총 시도 횟수
- 게임 이어서 하기
- 정답을 맞힐 때까지 계속해서 시도할 수 있습니다.
- 힌트 표시
- 게임 기록 보기
- 몇 번째 게임인지, 해당 게임에서 정답을 맞힐 때까지의 시도 횟수
- 올바르지 않은 입력값에 대한 오류 문구
- 게임 시작 안내 문구 및 옵션