Gocaml: An ocaml graphical frontend for GMP Go engines (2002)


This is gocaml, a graphical frontend for GMP (Go Modem Protocol) engines. Although usable, it has a very minimal user interface and is intended more as an example of ocaml programming than a serious Go client. NOTE: It does not provide a computer player itself – it needs something like gnugo for that.

It was written to explore the ocaml language, and also because I couldn’t get cgoban to run on my linux IPAQ. It was almost completely written natively on the IPAQ (with folding keyboard) using emacs and ocamlc. Great performance, great language.

Also have a look at my oclisp-0.5 (lisp interpreter). You can find lots more cool ocaml software at the ocaml links database and the caml humps.


You can download the source (18k) for gocaml-1.0 here.


Gocaml running on a windows box:

And here’s a snippet from the GMP log:

Note: 'lsn' is local sequence number and 'rsn' is 
remote sequence number.  This avoids the role-reversal 
headaches of the GMP hsn and ysn.

Gmp: RECV [lsn=0,rsn=1] New game
Gmp: SENT [lsn=0,rsn=1] Ok
Gmp: RECV [lsn=0,rsn=0] Query for rule set
Gmp: SENT [lsn=1,rsn=0] Answer of 1
Gmp: RECV [lsn=1,rsn=1] Query for board size
Gmp: SENT [lsn=0,rsn=1] Answer of 19

Gmp: RECV [lsn=0,rsn=0] Query for handicap
Gmp: SENT [lsn=1,rsn=0] Answer of 9
Gmp: RECV [lsn=1,rsn=1] Query for computer player color
Gmp: SENT [lsn=0,rsn=1] Answer of 2
Gmp: RECV [lsn=0,rsn=1] Ok
Gmp: RECV [lsn=0,rsn=0] White move at 118
Gmp: SENT [lsn=0,rsn=0] Ok
Gmp: SENT [lsn=1,rsn=0] Black move at 119
Gmp: RECV [lsn=1,rsn=0] Ok
Gmp: RECV [lsn=1,rsn=1] White move at 63
Gmp: SENT [lsn=1,rsn=1] Ok


Gocaml is released under the GPL.