プログラミング講座(29) 人間対コンピューター囲碁対局
いよいよ、コンピューターvs人間の対局が打てるところまできました。プログラムIDはHHF931-3です。
例によって自動でコメントになっている行を元に戻してお使いください。自動的にコメントになっている行は"following"を検索(Ctrl+F)するとよいでしょう。
今回の主な変更点は以下のとおりです。
・前回作った活路を数えるサブルーチンCountLiberty()を使い、地を数えるサブルーチンCountScore()を作成
・乱数によって次の手を決めるサブルーチンRandom()を作成
・CountScore()を使い、コンピューターによる囲碁の手を決めるサブルーチンTerritory()を作成
・起動時のプレイヤーを黒=CPU、白=Humanに変更
・終局時、死に石に×を付けるサブルーチンXDeadStones()を作成
・着手禁止(自殺手やコウダテが必要な交点には打てない)処理を追加
そして、制限は以下のとおりです。
・活路が1つしかない連のみ死に石としている
・地の判定が不十分
・棋譜ファイル(SGF)の日本語のコード系が違う
これでだいぶ囲碁プログラムらしくなってきました。これまでの処理は主に『コンピュータ囲碁の入門』という本を参考に作りました。今回のv0.7で、『コンピュータ囲碁の入門』に添付されているプログラム(CgfGoBan)とほぼ同じレベルに到達できたと思います。(ただしネットワーク対戦機能を除く)
今後はモンテカルロ法を実装して、どのくらい強くなるか試してみたいと考えています。
(つづく)
| 固定リンク
「囲碁」カテゴリの記事
- ディープラーニング(2017.01.07)
- 最近のコンピュータ囲碁(2016.03.05)
- JavaScript (38) 碁盤にもなる囲碁シミュレーター(2015.10.28)
- フリーソフト紹介:囲碁クエスト(2015.08.26)
- C++ (7) CgfGoBan のインストール(2015.01.17)
「Small Basic」カテゴリの記事
- プログラミング講座 (202) 1次元セルオートマトン(2020.09.20)
- プログラミング講座 (201) パラメーター(2020.09.14)
- プログラミング講座 (200) 3次ベジエ曲線(2020.09.14)
- プログラミング講座 (199) スーパー三角関数?(2020.09.02)
- プログラミング講座 (198) スーパー楕円(2020.09.01)
コメント
光次さん、sBufのブラウザ上でのエラーはv0.8(TLW572)以降で対策していますが、この版はローカルの環境にインポートしてコメントを外さないと動きません。悪しからずご了承下さい。
投稿: たかはしのんき | 2013/10/07 23:33
おい!ひどいぞ!sBufで隠すつもりか!
投稿: 光次 | 2013/10/06 20:43