回答編集履歴

1

完了

2018/04/13 04:04

投稿

eme
eme

スコア27

test CHANGED
@@ -1,99 +1,3 @@
1
- ```python
2
-
3
- def bowling(a):
4
-
5
- score=0#トータルスコア
6
-
7
- flame=1#フレーム(1−10)
8
-
9
- throw=1#フレーム内の投球回数(1or2)
10
-
11
- for n in range(0,len(a)):
12
-
13
- score += a[n]
14
-
15
- if throw >= 3:#1フレーム2投までなので、次のフレーム(1)に移る
16
-
17
- flame += 1
18
-
19
- throw = 1
20
-
21
- if flame != 10:
22
-
23
- if throw == 1 and a[n] == 10:#ストライクの時
24
-
25
- score += (a[n+1] + a[n+2])#後ろの2投分をスコアに加算
26
-
27
- flame += 1#フレームを一つ進める(この時投球回数は増やさない)
28
-
29
- elif throw == 1 and a[n] != 10:
30
-
31
- throw += 1
32
-
33
- elif throw == 2 and a[n]+a[n-1] == 10:#スペアの時
34
-
35
- score += a[n+1]#後ろ1投分をスコアに加算する
36
-
37
- flame += 1#フレームを一つ進める
38
-
39
- throw = 1#投球回数を1に戻す
40
-
41
- else:
42
-
43
- throw = 1
44
-
45
- flame += 1
46
-
47
- print(score)
48
-
49
- ```
50
-
51
- ```python
52
-
53
- def bowling(a):
54
-
55
- n = 0
56
-
57
- flame = 1
58
-
59
- a.append(0)
60
-
61
- a.append(0)
62
-
63
- score=0#トータルスコア
64
-
65
- while flame < 11:
66
-
67
- if a[n] == 10:#ストライクの時
68
-
69
- score += (a[n]+ a[n+1] + a[n+2])#後ろの2投分をスコアに加算
70
-
71
- n += 1
72
-
73
- flame += 1
74
-
75
- elif a[n]+a[n+1] == 10:#スペアの時
76
-
77
- score += a[n]+a[n+1]+a[n+2]#後ろ1投分をスコアに加算する
78
-
79
- n += 2
80
-
81
- flame += 1
82
-
83
- else:
84
-
85
- score += a[n]+a[n+1]
86
-
87
- n += 2
88
-
89
- flame += 1
90
-
91
- print(score)
92
-
93
- ```
94
-
95
-
96
-
97
1
  2通りの方法で記述できました。
98
2
 
99
3
  tacsheavenさん、fuzzballさん、どうもありがとうございました。