回答編集履歴

1

コード追記。

2018/04/12 02:00

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -5,3 +5,45 @@
5
5
  * 前フレ2投目+次フレ1投目=10 → スペア判定される。
6
6
 
7
7
  * 10フレでスペア/ストライク加算されてしまう。
8
+
9
+
10
+
11
+ 【追記】
12
+
13
+
14
+
15
+ スコア加算はフレーム単位でやった方がシンプルな気がします。
16
+
17
+ ベタ書きすると、
18
+
19
+
20
+
21
+ ```python
22
+
23
+ if a[n] == 10:
24
+
25
+ #strike
26
+
27
+ score += a[n] + a[n+1] + a[n+2]
28
+
29
+ n += 1
30
+
31
+ elif a[n] + a[n+1] == 10:
32
+
33
+ #spare
34
+
35
+ score += a[n] + a[n+1] + a[n+2]
36
+
37
+ n += 2
38
+
39
+ else:
40
+
41
+ score += a[n] + a[n+1]
42
+
43
+ n += 2
44
+
45
+ ```
46
+
47
+
48
+
49
+ こうやって見ると、加算に関してはストライクもスペアも同じ式なのが面白いですね。