介绍

保龄球(bowling),是在木板道上滚球击柱的一种室内运动。保龄球是以局为单位,以投球(rolls )击倒球瓶数(points )的多少来计分并决定胜负的。一局分为10轮(turns),除第10轮外,每轮有两次投球的机会。如果在一轮中,第一次投球就把10个球瓶全部击倒,即全中(strike 以X表示),得分为10分再加下两球的倒瓶数;如果第一球未全中则再打一球,当第二球击倒剩余球瓶,称之为补中(spare 以/ 表示),得分为10分再加下轮第一球的倒瓶数。如第二球也未击倒所有球瓶,称之为失误(miss 以- 表示),得分就是两次击倒球瓶之和。第10轮规则为:第一次投球如果投得全中,仍要继续投完最后两个球;如果是补中,就要继续投完最后一球,如果两次投 球没有将10个瓶全部击倒,那么第三次机会就会被自动取消,第10轮分数为所有击倒球数之和。

题目

开始挑战吧,任务分解并用TDD的方式编写程序,已知每轮击倒球数,计算出10轮的总分。

建议测试案例

X X X X X X X X X X X X (12 rolls: 12 strikes) = 10 turns* 30 points = 300

9- 9- 9- 9- 9- 9- 9- 9- 9- 9- (20 rolls: 10 pairs of 9 and miss) = 10 turns* 9 points = 90

5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/5 (21 rolls: 10 pairs of 5 and spare, with a final 5) = 10 frames * 15 points = 150​