10フレーム目の設計やり直し

This commit is contained in:
Rikuoh Tsujitani 2024-03-12 22:51:17 +09:00
parent a452c67cab
commit 4b8d430211
Signed by: riq0h
GPG key ID: 010F09DEA298C717

View file

@ -22,16 +22,29 @@ point = 0
frames.each_with_index do |frame, index| frames.each_with_index do |frame, index|
point += frame.sum point += frame.sum
if frame == [10, 0] && frames[index + 1].first == 10 #ストライクかつ次もストライクの場合 if frame == [10, 0] && frames[index + 1].first == 10 #ストライクかつ次もストライクの場合
point += frames[index + 2].first point += frames[index + 2].first
end end
if frame == [10, 0] #ストライク1回のみの場合 if frame == [10, 0] #ストライク1回のみの場合
point += frames[index + 1].sum #次のフレームの合計値が得点となる point += frames[index + 1].sum #次のフレームの合計値が得点となる
end end
if frame.sum == 10 && frame != [10, 0] # スペアの場合 if frame.sum == 10 && frame != [10, 0] #スペアの場合
point += frames[index + 1].first #次のフレームの一投目が得点となる point += frames[index + 1].first #次のフレームの一投目が得点となる
end end
puts "#{index + 1}フレーム目の得点: #{point}" puts "#{index + 1}フレーム目の得点: #{point}"
end end
if frames[10]
point -= frames[10].first
end
if frames[11]
point -= frames[11].first
end
print frames
puts point
#ストライクは次の「2投の合計値」が得点となる #ストライクは次の「2投の合計値」が得点となる
#つまりストライクを仮に1フレーム目で取り、2フレーム目もストライクだった場合、1フレーム目の得点には3フレーム目の初回分までが加算される #つまりストライクを仮に1フレーム目で取り、2フレーム目もストライクだった場合、1フレーム目の得点には3フレーム目の初回分までが加算される
#10フレーム目の3投目だけはスペアの加算対象としてはならない