情報領域演習第一:P演習

電気通信大学情報理工学域I類 (情報系)
2018年度後学期


[一覧に戻る]


課題F5

問題

ボーリングの得点計算を行うCプログラムを作成せよ.

入力として与えられるのは,ボーリング1ゲームにおける一人のプレイヤーの投球記録である.1つの投球に対して1つの整数が記録され,それはその投球によって倒れたピンの総数である.(ボーリングに詳しい人のための補足:ガター,ミス,ファールは0で表され,ストライクは10で表される.スペアも倒れたピンの総数で表される.)

1ゲームは10個のフレームで構成される.各フレームの開始時には10本のピンが立てられている.投球によって出来る限り多くピンを倒すことが目的である.

第1フレームから第9フレームでは,最大2回投球が行える.第1投で10本すべてのピンを倒すことをストライクと呼ぶ.第1投がストライクであった場合,第2投は行わない.第1投で10本すべてのピンを倒すことができない場合,第2投では倒れずに残されたピンを倒すことが目的となる.第1投と第2投で10本すべてのピンを倒すことをスペアと呼ぶ.

第10フレームでは,最大3回投球が行える.第1投で10本すべてのピンを倒すことができれば,それはストライクである.そのとき,第2投の前に新たに10本のピンが立てられる.第2投でそれら10本すべてを倒せば,それもストライクである.そのとき,第3投の前に新たに10本のピンが立てられる.第3投でそれら10本すべてを倒せば,それもストライクである.

第10フレームにおいて,第1投と第2投で10本すべてのピンを倒すことができれば,それはスペアである.そのとき,第3投の前に新たに10本のピンが立てられる.第3投でそれら10本すべてを倒せば,それはストライクである.

第10フレームにおいて,第1投と第2投で10本すべてのピンを倒すことができなければ,第3投を行うことはできない.

得点は次の規則で計算される.各フレームにおいて,倒したピンの総数がそのまま得点に加算される.第1フレームから第9フレームにおける各スペアに対して,その直後の投球で倒したピンの数がボーナス得点として加算される.第1フレームから第9フレームにおける各ストライクに対して,その直後2つの投球で倒したピンの総数がボーナス得点として加算される.

入力仕様

出力仕様

入力                                        => 出力
20 1 2 3 4 5 4 6 2 7 1 8 0 9 0 0 1 7 2 1 0  => 63
18 0 10 2 7 10 8 1 8 2 10 10 9 1 7 3 10 9 1 => 175
12 10 10 10 10 10 10 10 10 10 10 10 10      => 300
16 1 8 9 1 10 10 2 8 6 3 8 0 10 10 8 1      => 160

提出法

CED (CentOS) にて,プログラムを作成したディレクトリで以下を実行せよ.
% ~oa000833/enshu1p/checker_f5.rb ソースファイル名
「Submission successfully completed.」と表示されれば,提出が完了したことになる.


[一覧に戻る]


[Teaching Top] [Top]
okamotoy@uec.ac.jp