/java-bowling

볼링 게임 점수판 구현을 위한 저장소

Primary LanguageJava

볼링 게임 점수판

진행 방법

  • 볼링 게임 점수판 요구사항을 파악한다.
  • 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 코드 리뷰 요청을 한다.
  • 코드 리뷰 피드백에 대한 개선 작업을 하고 다시 PUSH한다.
  • 모든 피드백을 완료하면 다음 단계를 도전하고 앞의 과정을 반복한다.

온라인 코드 리뷰 과정

2단계 볼랑 점수판 그리기 Todo List

  • 플레이어 (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) -> -

3단계 볼랑 점수판(점수 계산) Todo List

  • 상태 (State)

    • 각 상태는 점수를 반환한다.
      • Gutter
        • FirstGutter는 점수를 반환하지 않는다.
        • SecondGutter는 점수를 반환한다.
      • FistBowl은 점수를 반환한다.
      • Ready는 점수를 반환하지 않는다.
      • Strike는 점수를 반환한다.
      • Miss는 점수를 반환한다.
      • Spare는 점수를 반환한다.
  • 점수 (Score)

    • Strike는 다음 프레임의 2번의 투구를 누적한다.
    • Spare는 다음 프레임의 1번의 투구를 누적한다.
    • 나머지는 해당 프레임의 투구들을 출력한다.

4단계 볼랑 점수판(N명) Todo List

  • 플레이어 (Player)
    • 여러명의 플레이어 횟수를 입력받을 수 있다.
      • 입력받은 횟수만큼 플레이어 이름을 입력받는다.
    • 플레이어들은 한 프레임씩 게임을 진행한다.