雛形
This commit is contained in:
parent
0d8e96bd3a
commit
1f0af286fc
1 changed files with 39 additions and 0 deletions
39
bowling.rb
Executable file
39
bowling.rb
Executable file
|
@ -0,0 +1,39 @@
|
|||
#!/usr/bin/ruby
|
||||
|
||||
score = ARGV[0]
|
||||
scores = score.split(',')
|
||||
shots = []
|
||||
scores.each do |s|
|
||||
if s == 'X'
|
||||
shots << 10
|
||||
shots << 0
|
||||
else
|
||||
shots << s.to_i
|
||||
end
|
||||
end
|
||||
|
||||
frames = []
|
||||
shots.each_slice(2) do |s|
|
||||
frames << s
|
||||
end
|
||||
|
||||
point = 0
|
||||
spare = false
|
||||
strike1 = false
|
||||
strike2 = false
|
||||
|
||||
frames.each do |frame|
|
||||
if frame[0] == 10
|
||||
point += 30
|
||||
elsif frame.sum == 10
|
||||
point += frame[0] + 10
|
||||
else
|
||||
point += frame.sum
|
||||
end
|
||||
end
|
||||
puts point
|
||||
|
||||
|
||||
# 上記のコードを以下の旧式ルールに適合させる。
|
||||
# 10フレーム目だけ3投ある場合がある。
|
||||
# スペアとストライクの場合は現在のフレームだけでは計算ができない。(次の投球、次の次の投球の情報が必要)
|
Loading…
Reference in a new issue