🏕 내일배움캠프/[Assignment] Ch2-2

[Ch 2][숫자 야구 게임] 2. 설계 (1) - 필수 기능(Lv 2의 입력 유효성 검사까지)

레이제로 2024. 9. 19. 21:04

2. 설계

 A. 러프한 객체 간의 데이터 흐름과 관계도

  1) 객체 간의 관계 및 데이터 흐름

객체 간의 관계 및 데이터 흐름

 B. 객체의 역할 정의

  1) 객체로부터 클래스 추출

객체의 클래스

  2) 역할 정의

클래스의 역할

 

 C. 기능 분해

  1. 정답 숫자 생성
    • 세 자릿수
    • 각 자리는 1부터 9 사이의 수
    • 각 자리는 동일하지 않는(중복되지 않는) 수
  2. 입력의 유효성 검사
    • 세 자리 수인가요? → 자릿수 검사
    • 중복된 숫자가 없나요?   중복 숫자 검사
    • 입력값에 숫자만 포함되어 있나요? → 타입 검사
  3. 게임 로직 (1) - [Lv 1]
    • 정답과 입력값을 비교하여, 힌트를 “볼, 스트라이크, 아웃”으로 표시합니다.
      • 스트라이크 : 입력값과 정답을 비교해 같은 자리에 같은 숫자가 있는 경우
      • : 숫자는 같지만, 자리는 다른 경우
      • 아웃 : 숫자도, 자리도 다른 경우
    • 답을 맞힐 때까지 계속 시도할 수 있습니다.
    • 입력한 세 자리 숫자가 정답과 같은 경우, 게임이 종료됩니다.
  4. 출력
    • 힌트/정답 표시
      • 힌트: '스트라이크'와 '볼'의 개수
      • 정답: 축하 메시지
    • 올바르지 않은 입력값에 대한 오류 문구
      • 입력값이 요구사항에 부합하지 않는 경우
      • 즉, 입력의 유효성 체크에서 유효하지 않다고 판단된 경우, “올바르지 않은 입력값입니다.” 오류 문구 출력
    • 게임 이어서 하기
      • 정답을 맞힐 때까지 계속해서 시도할 수 있습니다.