diff --git a/content/2.5.bowling.md b/content/2.5.bowling.md new file mode 100644 index 0000000..8ffb832 --- /dev/null +++ b/content/2.5.bowling.md @@ -0,0 +1,48 @@ +# 保龄球计分 +- 难度 XXX +- 预计时长 4小时 + +# 问题描述 +## 游戏规则如下 +- 有10个瓶,击倒几个瓶子算几分 +- 每一局,包含有10轮 +- 每一轮,可以打1-2次 +- 在每一轮,如果第一次就全部击倒称为Strike,这一轮结束。计分除了这10分外,还包括后面两次击球的分数 +- 在每一轮,如果第一次未全部击倒,还有一次击球机会,如果剩下的被全部击倒,称为Spare。计分除了这10分外,还包括后面一次击球的分数。 +- 在每一轮,如果两次都未能全部击倒,以两次击倒的球数计分。 +- 在10轮结束后,如果之前还有奖励分需要计算,最多还会给2次击球机会。这些击球仅仅为计算前面奖励分。 + +## 示例 +- X Strike +- -未击中 +- / Spare补中 +- 0-9击球 +- |分割符号 + +比如:X|1/|-5,表示第一轮Strike,第二轮Spare,第三轮5分 + +要求:给定击球结果的字符串,计算出一局的分数 + +比如: +X|7/|9-|X|-8|8/|-6|X|X|X||81 167分 + +# 过程 +## 拆分任务,从简单开始 + +先让大家拆分TODOList,对拆分进行评判 + +拆分示例 +- 输入1应该1分 +- 输入X应该10分 +- 输入-应该0分 +- 输入4/应该10分 +- 输入 45|12 应该的 12分 +- 输入4/|5 应该20分 +- 输入X|81 应该28分 +- 输入X|X|X 应该60分 +- 输入 X|7/|9-|X|-8|8/|-6|X|X|X||81 167分 +- 输入 X|X|X|X|X|X|X|X|X|X||XX 300分 + +## 重构 + +- 编写过程中需要时刻重构,否则可能写不下去