今回作ったBMatrixクラスはまだ今後も拡張しますし、アプレットのごく一部です。
しかし、プログラムを作っていく場合、あまり大量に作ってからテストすると、どこがおかしいのか探すのが大変になります。クラス1つ作ったら、そのクラスだけをテストしておいたほうがいいでしょう。メソッドが大きい場合はメソッド毎にテストしても構いません。
このようにプログラムの一部を単体でテストすることを単体テスト(unit test)といいます。単体テストのパターン(ケース)を作るためにEclipseにはJUnitという仕組みが組み込まれています。JUnitについては後ほど述べるとして、BMatrixを使った簡単なCUI (Character User Interface 文字ベース)のSample1というプログラムを作りましたので、簡単に説明しようと思います。
このプログラムは、以前示した図31の三角形と四角形のグラフをBMatrixで表現してみたものです。図31の表のチェックしたところが、このプログラムの実行結果
0 1 1 0 0 0
1 0 1 1 1 0
1 1 0 0 1 1
0 1 0 0 1 0
0 1 1 1 0 1
0 0 1 0 1 0
0 1 0 1 0 0 0 0 0
1 0 1 0 1 0 0 0 0
0 1 0 0 0 1 0 0 0
1 0 0 0 1 1 0 0 0
0 1 0 1 0 1 0 1 0
0 0 1 0 1 0 0 0 1
0 0 0 1 0 0 0 1 0
0 0 0 0 1 0 1 0 1
0 0 0 0 0 1 0 1 0
の1のところに対応しています。下の結果は3×3の四角形、碁盤で言えば3路盤をグラフで表した結果で、9×9の行列になっています。1行目は左上隅の交点を表していて、1が2つあるのは2つの交点と隣接していることを表しています。2行目は左辺の交点で3点と隣接、5行目は中央の交点で4点と隣接しているのが分かります。
BMatrixの行も列もそれぞれ同じ9個の交点を表していて、たとえば5行目も5列目も3路盤の中央の点を表しています。
碁盤もマトリックスでそれを表すグラフもマトリックスでちょっと混乱しますが、だいたい理解いただけたでしょうか?
実際の囲碁の局面について述べるには、ベクトルと行列の積や行列同士の積など、まだもう少しいろいろ説明してからになるので、ここまでとし、次にJUnitについて簡単に説明したいと思います。
(つづく)