« プログラミング講座(89) 作文コンテスト | トップページ | プログラミング講座(91) コードブロックの生成 »

2012/10/27

プログラミング講座(90) 囲碁ふたたび

図形エディタが未完のままなのですが、JavaScript で作っていた囲碁プログラムをしばらくは Small Basic で書いてみることにしました。Small Basic のほうが使い慣れてしまっているので、デバッグするのも楽だろうと考えました。

まずは碁盤のプログラムを作成しました。RHV135 で発行しました。実は作成したのはずいぶん前なのですが、画面のチラツキなどを解消しました。
図90 碁盤
【図90 碁盤】

もともと碁盤の図を作成するために書いたプログラムです。黒白交互に石を置いていけます。盤外をクリックすると順番が入れ替わります。石の上をクリックすると石を取り除けます。テキスト画面にはSGF(スマートゲームフォーマット)の棋譜が出力されます。

以前作った囲碁プログラムは AI (次の手を考える頭脳の部分)を作りかけて、Small Basic では遅すぎるということで、Java に移行しました。今回は黒白ランダムに終局まで打つ(プレイアウトといいます)シミュレーション プログラムを作ろうと思います。プレイアウトも以前作ったので、組み合せればできると思います。

囲碁のシミュレーションでやってみたいことは、初手をどこに打つと勝つ確率が高いかを調べてみることです。5路盤の囲碁は解析が済んでいて、初手天元が強いことが分かっています。これも確認してみたいと思います。

5路盤より路数が増えるとコンピュータの解析はされておらず、路数が増えるほど実戦では初手天元はあまり打たれません。映画『天地明察』の影響もあるのですが、天元は幾何学的に美しい位置ではあるので、9路盤くらいまでシミュレーションしてみる予定です。

天元なので、5路盤、7路盤、9路盤が対象になります。

|

« プログラミング講座(89) 作文コンテスト | トップページ | プログラミング講座(91) コードブロックの生成 »

囲碁」カテゴリの記事

Small Basic」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: プログラミング講座(90) 囲碁ふたたび:

« プログラミング講座(89) 作文コンテスト | トップページ | プログラミング講座(91) コードブロックの生成 »