« 蚊に刺されたら… | トップページ | プログラミング講座(30) Small Basicのコード系 »

プログラミング講座(29) 人間対コンピューター囲碁対局

いよいよ、コンピューターvs人間の対局が打てるところまできました。プログラムIDはHHF931-3です。
例によって自動でコメントになっている行を元に戻してお使いください。自動的にコメントになっている行は"following"を検索(Ctrl+F)するとよいでしょう。

Igo07
【図24 コンピューターvs人間の対局を再生したところ】

今回の主な変更点は以下のとおりです。
・前回作った活路を数えるサブルーチンCountLiberty()を使い、地を数えるサブルーチンCountScore()を作成
・乱数によって次の手を決めるサブルーチンRandom()を作成
・CountScore()を使い、コンピューターによる囲碁の手を決めるサブルーチンTerritory()を作成
・起動時のプレイヤーを黒=CPU、白=Humanに変更
・終局時、死に石に×を付けるサブルーチンXDeadStones()を作成
・着手禁止(自殺手やコウダテが必要な交点には打てない)処理を追加

そして、制限は以下のとおりです。
・活路が1つしかない連のみ死に石としている
・地の判定が不十分
・棋譜ファイル(SGF)の日本語のコード系が違う

これでだいぶ囲碁プログラムらしくなってきました。これまでの処理は主に『コンピュータ囲碁の入門』という本を参考に作りました。今回のv0.7で、『コンピュータ囲碁の入門』に添付されているプログラム(CgfGoBan)とほぼ同じレベルに到達できたと思います。(ただしネットワーク対戦機能を除く)

今後はモンテカルロ法を実装して、どのくらい強くなるか試してみたいと考えています。

(つづく)

« 蚊に刺されたら… | トップページ | プログラミング講座(30) Small Basicのコード系 »

コメント

コメントを書く

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

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/21203/49210633

この記事へのトラックバック一覧です: プログラミング講座(29) 人間対コンピューター囲碁対局:

« 蚊に刺されたら… | トップページ | プログラミング講座(30) Small Basicのコード系 »

フォト

つぶやき

無料ブログはココログ

ウェブ検索

  • 毎日の検索で環境貢献
    このパーツから
    Powered by

最近のトラックバック