Skip to content

Latest commit

 

History

History
63 lines (37 loc) · 3.37 KB

katabowl.markdown

File metadata and controls

63 lines (37 loc) · 3.37 KB

カタ ボウリング

紹介元

http://codingdojo.org/cgi-bin/wiki.pl?KataBowling

この概要は www.xprogramming.com/xpmag/acsBowling.htm が元になっています。

概要

正しく与えられたボーリングの投球のシーケンスから、合計スコアを出すプログラムを書きます。

やらないこと

ただし、以下のことはしません。

  • 投球ごとの倒したピン数が正しいかはチェックしない。
  • 投球数が正しいかはチェックしない。
  • フレームごとのスコアは出さなくてよい。

アプリケーションによって、この実装は正しいストーリーではないかもしれんが、型を維持するために、とりあえずやってみましょう。

上の仕様で上手く書けるようになって、もっとリアリティがほしくなる頃には、コーディングがうまくなってると思います。

ボーリングのルール

簡単にボーリングのルールをおさらいするよ

  • 1ゲームは10フレーム
  • それぞれのフレームで、ボウラーは2回ピンを倒すチャンスがある
  • フレームで全ピンを倒せなかったら、スコア=ピンを倒した数だよ
  • 2回投げて10本倒れたら、スペアですよ。このフレームの得点は、10点 + 次の投球で倒したピン数ですよ
  • フレーム最初の投球で全部倒したら、ストライクですよ。ストライクを出したら、順番(フレーム)は終わりで、点数は10点 + 次の投球のピン数 + 次の次の投球のピン数ですよ。
  • 最後のフレームでスペアかストライクを出したら、ボーナスであと1回か2回投げることができます。これらのボーナスは、最後のフレーム自身に入ります。ボーナスですべてピンが倒れても、繰り返してまた投げることはありません。ボーナス投球は、最後のフレームのボーナス計算だけのためのものです。
  • ゲームのスコアは全部のフレームの合計ですよ

ルールについてのさらなる情報はこちら

http://www.topendsports.com/sport/tenpin/scoring.htm

@misogi

手がかり

このゲームのおもしろいところは、スペアやストライクが出たときの点数の予想です。

ストライクやスペアを出したときには、ボーナスが何点か計算するのに、1投球か2投球待つ必要がある。

推奨テストケース

("X" がストライク、"/" がスペア、"-" がミスだったとして)

  • "XXXXXXXXXXXX" (12投: 12ストライク) = 10+10+10 + 10+10+10 + 10+10+10 + 10+10+10 + 10+10+10 + 10+10+10 + 10+10+10 + 10+10+10 + 10+10+10 + 10+10+10 = 300
  • "9-9-9-9-9-9-9-9-9-9-" (20投: 9本からのミスが10回) = 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 = 90
  • "5/5/5/5/5/5/5/5/5/5/5" (21投: 5本からのスペアが10回, 最後のフレームで 5) = 10+5 + 10+5 + 10+5 + 10+5 + 10+5 + 10+5 + 10+5 + 10+5 + 10+5 + 10+5 = 150

師匠からひとこと

できたコードよりそれに至るあなたの決定の方が大事です。

コードを作り直すのではなく、じっと見つめてみよう。

たくさんの人が問題を考えて、どうやって挑んだか、どのデザインが取り除かれたか、どんな順番でテストケースが実装されたかを気にしよう。