Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions content/2.5.bowling.md
Original file line number Diff line number Diff line change
@@ -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分

## 重构

- 编写过程中需要时刻重构,否则可能写不下去