- 볼링 게임 점수판 요구사항을 파악한다.
- 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 코드 리뷰 요청을 한다.
- 코드 리뷰 피드백에 대한 개선 작업을 하고 다시 PUSH한다.
- 모든 피드백을 완료하면 다음 단계를 도전하고 앞의 과정을 반복한다.
-
플레이어 (Player)
- 이름을 가진다.
- 이름은 최대 3글자이며, 3글자 초과시 예외를 발생한다.
- 이름을 가진다.
-
핀 (Pin)
-
핀 (Pin)
은상태(Pin State)
를 가진다.- 서있을경우
STANDING
- 넘어가 있을 경우
KNOCK_OVER
- 서있을경우
- 처음
핀 (Pin)
의 갯수는 10개이다.- 처음
핀 (Pin)
생성시 다 서있다.
- 처음
- 서있는
핀 (Pin)
의 갯수를 확인할 수 있다.
-
-
프레임 (Frame)
- 각
프레임 (Frame)
은 번호를 가진다.- 프레임 번호는 1 ~ 10을 가진다. 그 이외의 번호는 예외를 발생한다.
- 프레임은 다음 프레임을 가지고 있다.
- 마지막 프레임은 다음 프레임을 가지고 있지 않는다.
- 하나의 프레임은 공을 던질 두번의 기회가 주어진다.
- 마지막 10번 프레임은 최대 투구 횟수가 3번이다.
- 10프레임때 스트라이크거나 스페어일경우 투구 횟수는 3번이다.
- 각
프레임 (Frame)
은 점수 상태를 가진다.- 스트라이크 (STRIKE) -> X
- 스페어 (SPARE) -> 넘어진 갯수 | /
- 미스 (MISS) -> 넘어진 갯수
- 거터 (GUTTER) -> -
- 각
-
상태 (State)
- 각 상태는 점수를 반환한다.
- Gutter
- FirstGutter는 점수를 반환하지 않는다.
- SecondGutter는 점수를 반환한다.
- FistBowl은 점수를 반환한다.
- Ready는 점수를 반환하지 않는다.
- Strike는 점수를 반환한다.
- Miss는 점수를 반환한다.
- Spare는 점수를 반환한다.
- Gutter
- 각 상태는 점수를 반환한다.
-
점수 (Score)
- Strike는 다음 프레임의 2번의 투구를 누적한다.
- Spare는 다음 프레임의 1번의 투구를 누적한다.
- 나머지는 해당 프레임의 투구들을 출력한다.
플레이어 (Player)
- 여러명의 플레이어 횟수를 입력받을 수 있다.
- 입력받은 횟수만큼 플레이어 이름을 입력받는다.
- 플레이어들은 한 프레임씩 게임을 진행한다.
- 여러명의 플레이어 횟수를 입력받을 수 있다.