GnuGo 3.6 をWindowsで快適に使う方法。

更新日:2007/09/20
GnuGoとは?

ソースを公開しながら有志によって作られている囲碁プログラムです。
以前の1.2は弱かったのですが、2000年あたりから改良されだして突然強くなりました。
彩よりも強いのでお勧めです。(とはいっても弱いですけどね、程度の問題で)

GnuGoのページはこちら。
http://www.gnu.org/software/gnugo/gnugo.html

棋聖堂(KGS)という囲碁サーバではGnuGoがロボットで動いていて レーティングの推移が見れます。
2006年11月現在はKGSで6級。日本の級だと3級程度ではないかと思います。
彩のKGSでのレーティングも。


Windowsで使うには

GnuGoの実行ファイルをダウンロード

まずWindows用のGnuGo 3.6の実行ファイルを Teun Burgerさんのページから ダウンロードして下さい。
(gnugo-mingw-36.exe という名前になってます。以下では名前を gnugo.exe に変更したとします)
このままだとテキストベースなので対局なんかまともに出来ません。
そこで、囲碁用のGUIの出番になります。









Linux
(試したOSは TurboLinux 3.0 です)

LinuxではCGobanを使ってGUIで対戦できます。
また、CGobanを使えばSGMPが使える他の囲碁ソフトと通信対戦が可能になります。

CGoban 1.9.11 はこちらから落とせます。
http://www.igoweb.org/~wms/comp/cgoban/index.html

自作の囲碁プログラムと対戦させる場合は、
CGobanの「GoModem」をクリックして対戦相手の黒を「device」で
/dev/cua0
(COM1の事です。/dev/cua1 がCOM2になります)

を指定して、白を「program」で
/home/yss/gnugo-2.7.240/interface/gnugo --quiet --mode gmp
と、フルパスで指定します。

なお、標準だとCOMポートを使う権限がないので、とりあえずrootでcgobanを
起動しておきます。



最初、どうやってアプリケーション間の通信をしているのか疑問だったのですが
cgobanから子プロセスとしてGnuGoを起動して
標準入出力 stdin/stdout ( read(0,*buf,4), write(1,*buf,4) )という形で
やり取りしていました。

両方ともSGMPを使うのでややこしいのですが図にすると、

         標準入出力              RS-232C
       (stdin/stdout)         クロスケーブル
GnuGo  <--- GMP --->  CGoban  <--- GMP --->  自作の囲碁プログラム

という感じです。
画面に表示したデータをキーボートからの入力のように受け取る、
というイメージでしょうか。

そもそもSGMPはシリアル通信で利用するための設計だと思うのですが
拡張して他のGUI機能を持つ囲碁盤ソフトを使って対戦できるように
なっています。

つまり現在のGnuGoは単体ではCOMポートを使った通信対戦はできない、
という事です。


元のページに戻る