囲碁プログラムのSmall BasicからVisual Basicへ移植の途中経過について報告します。
Small BasicからVisual Basicへの移植は、Small Basicのライブラリを使えば、ほとんどの機能をそのまま使えるので楽ですが、Small Basicと同じライブラリが走るので、高速化が望めません。
高速化の試みとしてSmall Basicのライブラリに依存しない方針を取り、延々とコンパイルエラーの解消に取り組んできましたが、ようやくコンパイルエラーがなくなり、実行可能になりました。
フォーム(画面)も表示できるところまで来ましたが、まだプログラム自体は動きません。
フォームを正しく表示するにはForm.ShowDialog()を呼ぶしかなさそうなのですが、これを呼ぶとフォームが閉じるまでメイン側の処理に制御が戻って来ません。
フォーム側のイベント駆動のルーチンにゲームのロジックを分散させる方法もありますが、ゲームの流れをわかりにくくしてしまうので避けたいと思います。
となると、Form.ShowDialog()を呼ぶ前にゲームのスレッドを起こし、フォーム側のイベント処理と同期しながら動かすのが、自然でしょう。
ということで、次の取り組みは、ゲーム本体のスレッド化ということになってきました。