🏕 내일배움캠프/[Assignment] Ch2-2
[Ch 2][숫자 야구 게임] 2. 설계 (1) - 필수 기능(Lv 2의 입력 유효성 검사까지)
레이제로
2024. 9. 19. 21:04
2. 설계
A. 러프한 객체 간의 데이터 흐름과 관계도
1) 객체 간의 관계 및 데이터 흐름
B. 객체의 역할 정의
1) 객체로부터 클래스 추출
2) 역할 정의
C. 기능 분해
- 정답 숫자 생성
- 세 자릿수
- 각 자리는 1부터 9 사이의 수
- 각 자리는 동일하지 않는(중복되지 않는) 수
- 입력의 유효성 검사
- 세 자리 수인가요? → 자릿수 검사
- 중복된 숫자가 없나요? → 중복 숫자 검사
- 입력값에 숫자만 포함되어 있나요? → 타입 검사
- 게임 로직 (1) - [Lv 1]
- 정답과 입력값을 비교하여, 힌트를 “볼, 스트라이크, 아웃”으로 표시합니다.
- 스트라이크 : 입력값과 정답을 비교해 같은 자리에 같은 숫자가 있는 경우
- 볼 : 숫자는 같지만, 자리는 다른 경우
- 아웃 : 숫자도, 자리도 다른 경우
- 정답을 맞힐 때까지 계속 시도할 수 있습니다.
- 입력한 세 자리 숫자가 정답과 같은 경우, 게임이 종료됩니다.
- 정답과 입력값을 비교하여, 힌트를 “볼, 스트라이크, 아웃”으로 표시합니다.
- 출력
- 힌트/정답 표시
- 힌트: '스트라이크'와 '볼'의 개수
- 정답: 축하 메시지
- 올바르지 않은 입력값에 대한 오류 문구
- 입력값이 요구사항에 부합하지 않는 경우
- 즉, 입력의 유효성 체크에서 유효하지 않다고 판단된 경우, “올바르지 않은 입력값입니다.” 오류 문구 출력
- 게임 이어서 하기
- 정답을 맞힐 때까지 계속해서 시도할 수 있습니다.
- 힌트/정답 표시