保龄球 计数器 代码
时间: 2024-05-02 08:15:02 浏览: 142
保龄球计数器是一个用于记录保龄球比赛得分的程序。是一个简单的保龄球计数器代码示例:
```python
BowlingScoreCounter:
def __init__(self):
self.frames = [[] for _ in range(10)] # 10个帧的列表,每个帧可以包含多个投球
self.current_frame = 0 # 当前帧的索引
def roll(self, pins):
# 检查是否为合法的击倒瓶数
if pins < 0 or pins > 10:
raise ValueError("Invalid number of pins")
# 将击倒瓶数添加到当前帧中
self.frames[self.current_frame].append(pins)
# 如果当前帧已经结束,进入下一帧
if len(self.frames[self.current_frame]) == 2 or pins == 10:
self.current_frame += 1
def calculate_score(self):
score = 0
frame_index = 0
for _ in range(10): # 遍历10个帧
frame = self.frames[frame_index]
if len(frame) == 2: # 普通帧
if sum(frame) == 10: # 补中
score += sum(frame) + self.frames[frame_index + 1]
else:
score += sum(frame)
frame_index += 1
elif len(frame) == 1: # 补中帧
score += sum(frame) + self.frames[frame_index + 1] + self.frames[frame_index + 1]
frame_index += 1
else: # 全中帧
score += sum(frame) + self.frames[frame_index + 1] + self.frames[frame_index + 2]
frame_index += 1
return score
```
这段代码实现了一个简单的保龄球计数器,可以通过`roll`方法记录每次击球的击倒瓶数,并通过`calculate_score`方法计算总得分。
阅读全文