ループ分割途中

This commit is contained in:
Rikuoh Tsujitani 2024-03-13 15:10:54 +09:00
parent 4b8d430211
commit ca480bc664

View file

@ -19,11 +19,10 @@ end
point = 0 point = 0
frames.each_with_index do |frame, index| frames[0..7].each_with_index do |frame, index|
point += frame.sum point += frame.sum
if frame == [10, 0] && frames[index + 1].first == 10 #ストライクかつ次もストライクの場合 # ストライクかつ次もストライクの場合
point += frames[index + 2].first point += frames[index + 2].first if frame == [10, 0] && frames[index + 1].first == 10
end
if frame == [10, 0] # ストライク1回のみの場合 if frame == [10, 0] # ストライク1回のみの場合
point += frames[index + 1].sum # 次のフレームの合計値が得点となる point += frames[index + 1].sum # 次のフレームの合計値が得点となる
end end
@ -33,18 +32,24 @@ frames.each_with_index do |frame, index|
puts "#{index + 1}フレーム目の得点: #{point}" puts "#{index + 1}フレーム目の得点: #{point}"
end end
if frames[10] frames[8..11].each_with_index do |frame, index| # 例外処理のためにループを分割する
point -= frames[10].first point += frame.sum
if frame == [10, 0]
point += frames[index + 9].sum
print frames[index + 8]
end
if frame.sum == 10 && frame != [10, 0]
point += frames[index + 9].first
end
puts "#{index + 9}フレーム目の得点: #{point}"
end end
if frames[11] point -= frames[10].sum if frames[10] # 計算結果から余剰加点を除外
point -= frames[11].first point -= frames[11].first if frames[11] == [10, 0] # 計算結果から余剰加点を除外
end
print frames print frames
puts point puts point
# ストライクは次の「2投の合計値」が得点となる # ストライクは次の「2投の合計値」が得点となる
# つまりストライクを仮に1フレーム目で取り、2フレーム目もストライクだった場合、1フレーム目の得点には3フレーム目の初回分までが加算される # つまりストライクを仮に1フレーム目で取り、2フレーム目もストライクだった場合、1フレーム目の得点には3フレーム目の初回分までが加算される
# 10フレーム目の3投目だけはスペアの加算対象としてはならない # 10フレーム目の3投目だけはスペアの加算対象としてはならない