ボウリングでスペアを取得した場合のテストケースを考える
2014年10月15日(水)

- [高梨] おっ、わかりましたか?
- [古谷] 1ピンずつ倒していったら、5フレーム目の第2投球で10点になります。多分それをスペアだと勘違いしているからです!
- [高梨] なるほど! それではどうしましょうか?
- [古谷] そうですね…… つまり、今までの「合計が10になった時点」でフラグをセットするのではなくて、前回倒したピン数を覚えておいて、「前回と今回倒したピン数の合計が10ピンの時」だけスペアフラグをセットするようにするのはどうでしょう?
- [高梨] よさそうですね! やってみてください。
- [古谷] は、はい…… あっ、うまくいきました♪
- [高梨] 素晴らしいです!
- [古谷] やったあ! では、次はいよいよストライクの仕様を……
- [高梨] おっとすみません、その前に念のため、もう1つテストケースを追加してください
- [古谷] えっ? スペアのテストですか?
- [高梨] そうです。お願いしたいのはこのパターンです。
第1投目 | 2ピン倒す |
---|---|
第2投目 | 5ピン倒す |
第3投目 | 5ピン倒す |
第4投目 | 1ピン倒す |
残り16投 | 全てガタ— |
- [古谷] これは…… 第2投目と第3投目の合計は10点になりますが、フレームが違いますから、スペアにはならないですよね?
- [高梨] その通りです!
- [古谷] ちょっと嫌な予感がしますがやってみます…あ、やっぱり……
- [高梨] どうなりましたか?
- [古谷] このケース、スペアではないはずなのにスペアだと認識されてしまいました。うーん、なぜでしょうか?
- [高梨] それはまさに、先程古谷さんが言っていた通りだと思います。2投目と3投目の合計は10点ですが、フレームが違うのでスペアにはなりません。ですが、今のプログラムでは、その判断を行っていません。
- [古谷] そうか…… であれば、投球がフレームの2投目かどうか判断させて、2投目の時だけスペア判断をさせるようにする必要がありますね。
- [高梨] なるほど! それでは、そのようにプログラムを追記してください。
- [古谷] うーん…… こんな感じですか?
- [高梨] 大丈夫です! かなりプログラムが進化してきましたね。 そして古谷さん自身も、だいぶTDDに慣れてきたようですね。
- [古谷] そうですね、慣れてきたというのもありますが、少しずつ自信がついてきたような気がします。
- [高梨] それではそのよい状態のまま、次回は「ストライクを取得したときのテストケース」に進みましょう。連続ストライクの場合など、より複雑になっていきますので、頑張ってください!
- [古谷] はい!
<協力:株式会社ハウインターナショナル>
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。