ソースを公開しながら有志によって作られている囲碁プログラムです。
以前の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の出番になります。
gnugoが長考する!思考時間は5分以内で!という場合は
gnugo --clock 300 --autolevel --quiet --mode gmp
と、clock, autolevel オプションをつけます。clock の後の300は(5分=300秒)の意味です。
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 ---> 自作の囲碁プログラムという感じです。