2009. 2. 4. 20:50

세 번째 퀴즈 입니다. 볼링 게임~

목표

볼링점수를 계산하는 프로그램을 작성

볼링점수계산

계산법참고

  • Stike인 경우는 다음 두번 투구수의 점수를 합한다. 따라서 이후 두번 더 투구할 때까지 strike한 프레임의 점수는 계산되지 않는다.
  • Spare인 경우는 다음 한번 투구스의 점수를 합한다. 따라서 이후 한번 더 투구할 때까지 spare한 프레임의 점수는 계산되지 않는다.
  • 마지막 프레임의 경우는 위의 두가지 조건을 만족하기 위해서 Stike이면 2번, Spare면 한번의 투구가 가능하다.

요구사항

  • 볼링게임(BowlingGame)클래스의 인스턴스를 만들면 새 게임이 시작한 것으로 간주한다.(명시적인 start는 필요없음)
  • 현재 몇번째 프레임의 몇번째 투구(첫번~세번째)를 할 차례인 조회해 볼 수 있다. 게임이 끝났으면 GameOverException을 던진다.
    (Frame번호 + 그 프레임의 시도횟수)
  • 현재까지 진행된 프레임결과와 각 프레임 점수를 보여준다. 확정되지 않은 점수는 표시하지 않아도 된다.
    결과는 현재프레임을 포함해서 진행한 프레임(Frame)갯수만큼의 리스트를 리턴하도록 한다.
    각 프레임에는 프레임번호와 결과스트링(X/-1~9)과 그 프레임의 점수를 돌려준다.

ex)
Frame(1, 08, 8)
Frame(2, X, 15)
Frame(3, 5-, 5)
...
Frame(10, XXX, 30)

기호)
Stike : X
Spare : /
Gutter: -
그외 : 0~9

  • 한번 투구를 하는 메소드(roll)를 만들고 쓰러뜨린 핀의 수를 파라메터로 넘긴다. 게임이 끝났으면 GameOverException을 던진다.