さっそく囲碁プログラムの初版を「発行」しました。プログラムIDは「NBK992」です。
【図16 Igo.smallbasic v0.1 実行結果】
プログラミング講座(19)のリスト7で示した疑似コードをベースにプログラムしました。
ただ、レベルとしては、とりあえず囲碁の画面が出せるところまでです。まだコーディングしていないサブルーチンもありますし、代用できるものを使っているところもあります。プログラムを大きな流れから徐々に細かいところへと作っていくときに、仮に作る(代用の)サブルーチンを「スタブ」と呼んだりします。
たとえば、次の手を打つところは、共通のReplay()というスタブを呼び出しています。ここでは本来は、人やコンピューターが次の手を考えて打つところですが、Replay()では予め用意した棋譜(ゲームの記録)に従って順番に打つようになっています。
それから、今回はグラフィックスを使って絵を表示しています。先の単語帳プログラムは文字によるインターフェースなので、CUI (Character User Interface)プログラムと呼ばれるのに対し、今回はGUI (Graphic User Interface)プログラムと呼ばれます。CUIプログラムでは主にTextWindowクラスの操作を使いましたが、GUIプログラムでは主にGraphicsWindowクラスの操作を使います。
なお、このプログラムで表示しているデモゲームは光文社新書『東大教養囲碁講座』6路盤 模範対局より拝借しました。この本は初心者でも短期間で囲碁を楽しめるようになるよう、東京大学の教養学部で行われた授業を元に書かれていて、これから囲碁を始めてみようか、という方にお勧めの本です。
このようにスタブだらけのプログラムから徐々に細部を作りこんでいくという方針でプログラミングを進めていきたいと思います。
(つづく)