ビンゴカードのプログラムが完成できたのでそのアウトプットをしていきます。
リーチとビンゴの数を出力
ビンゴボールクラスとカウントビンゴクラス、ビンゴカードクラスで分けて作成し、ビンゴカードクラスにビンゴボールクラスとカウントビンゴクラスを継承させ、それらのメソッドをビンゴカードクラス内でも扱えるようにしました。ビンゴカウントクラスでリーチ数とビンゴ数をカウントするのですが、このクラス内でビンゴ列の縦に穴が開いている数、横に穴が空いている数、斜めに空いている数をカウントするクラス変数を定義しビンゴカードクラス内でビンゴボールで穴が空いた数にテェックを入れる処理のところで場合わけをして先のクラス変数の値を変化させました。最後にカウントビンゴクラス内でcount_reachメソッドとcount_bingoメソッドで先のクラス変数の値が4の時にリーチ数を+1、5の時にビンゴ数を+1をカウントしてそれを出力する記述をすれば完成です。
アルゴリズムとは
アルゴリズムとは問題を解く際の方法や手順のことです。まず線形探索法と二分探索法を学びました。例えばある人がいてこの人の年齢は20歳以上36歳未満でyesかnoを答えることができて、四回の質問で答えを出すという問題があるとします。この時に20歳ですか?21歳ですか?とかたっぱしから質問をして確実に解を導こうとするものが線形探索法で、今回の場合では最高16回質問をしないといけないのでアルゴリズムとして適正ではありません。そこで20~35の半分の値のところ、28歳未満ですか?と質問をしてその次の質問でも同じように半分のところで質問を繰り返しどの年齢の場合でも4回で解を導き出すことができます。このようにアルゴリズムは問題によって変更し、より効率的に解を求めるように改善するのです。