teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

完了

2018/04/13 04:04

投稿

eme
eme

スコア27

answer CHANGED
@@ -1,50 +1,2 @@
1
- ```python
2
- def bowling(a):
3
- score=0#トータルスコア
4
- flame=1#フレーム(1−10)
5
- throw=1#フレーム内の投球回数(1or2)
6
- for n in range(0,len(a)):
7
- score += a[n]
8
- if throw >= 3:#1フレーム2投までなので、次のフレーム(1)に移る
9
- flame += 1
10
- throw = 1
11
- if flame != 10:
12
- if throw == 1 and a[n] == 10:#ストライクの時
13
- score += (a[n+1] + a[n+2])#後ろの2投分をスコアに加算
14
- flame += 1#フレームを一つ進める(この時投球回数は増やさない)
15
- elif throw == 1 and a[n] != 10:
16
- throw += 1
17
- elif throw == 2 and a[n]+a[n-1] == 10:#スペアの時
18
- score += a[n+1]#後ろ1投分をスコアに加算する
19
- flame += 1#フレームを一つ進める
20
- throw = 1#投球回数を1に戻す
21
- else:
22
- throw = 1
23
- flame += 1
24
- print(score)
25
- ```
26
- ```python
27
- def bowling(a):
28
- n = 0
29
- flame = 1
30
- a.append(0)
31
- a.append(0)
32
- score=0#トータルスコア
33
- while flame < 11:
34
- if a[n] == 10:#ストライクの時
35
- score += (a[n]+ a[n+1] + a[n+2])#後ろの2投分をスコアに加算
36
- n += 1
37
- flame += 1
38
- elif a[n]+a[n+1] == 10:#スペアの時
39
- score += a[n]+a[n+1]+a[n+2]#後ろ1投分をスコアに加算する
40
- n += 2
41
- flame += 1
42
- else:
43
- score += a[n]+a[n+1]
44
- n += 2
45
- flame += 1
46
- print(score)
47
- ```
48
-
49
1
  2通りの方法で記述できました。
50
2
  tacsheavenさん、fuzzballさん、どうもありがとうございました。