Subject: Re: Compilation

From: [email-masked] (Michael P. Frank)
Date: Sun, 19 Jul 92 20:07:04 EDT

Andreas,

I just manually carried out 2 games between your program and mine.

Game 1:
 your prog: default parameters (3 ply)
 our prog: Conspiracy theory (abalone -c -p), 100000 nodes
 our prog moves first and wins, 6-1 or 6-2, I forget.
 
Game 2:
 your prog: default parameters (3 ply)
 our prog: alpha-beta (abalone -a -p), 3 ply 
 our prog moves first and loses, 5-6.

It was pretty tedious entering the moves for both programs, though.
We need to devise a protocol for abalone-playing between different
programs, and modify both our programs to allow playing against other
programs using that protocol.  Kind of like how gnuchess works.

Also, we need to think of unique names for our programs; right now
they're both called 'abalone', which makes it hard to refer to them
unambiguously.  I notice yours says 'COMPALONE' on its display.  That
would be a fine name.  I'll try to think of a name for my program.

-Mike

---

From: [email-masked] (Michael P. Frank)
Date: Mon, 20 Jul 92 11:27:06 EDT

Hi Andreas,

>>>>> On Mon, 20 Jul 92 11:01:27 +0200, [email-masked] said:
> our prog moves first and wins, 6-1 or 6-2, I forget.
ant> Gasp!

Of course, that result doesn't mean much; to be fair, you would want
both programs to search the same number of nodes, or take the same
amount of time, or something like that.  It wouldn't be too hard to
change the alpha-beta player to do iterative deepening and stop after
examining 100000 nodes.  Or give both programs an n-second time limit.

> our prog moves first and loses, 5-6.
ant> Nice.

I was going to have a 4-ply battle between the programs, but I got
tired of entering moves.  A real tournament, with time limits and
such, will have to wait until we can code up the inter-program
protocol.  (Of course, if the programs are running on different types
of machines, you can't really compare them on the basis of time,
unless you handicap them by the MIPS-rating of the machine or
something.)

>programs using that protocol.  Kind of like how gnuchess works.

ant> That's also what I've been thinking. I don't know gnuchess, though. I
ant> was thinking about maybe setting up 2 named pipes the programs could
ant> connect to.

GNUchess does something like that.  Well, maybe it just uses stdin and
stdout or something.  Probably the best way is to set up sockets that
can be connected to over the Internet.

ant> I was also thinking about a move representation suitable for both
ant> programs (this is just an idea): 
ant> 	
ant> 	Move = Direction #_of_marbles MarbleList.
ant> 	Direction = {0(N),1(NW),2(W),...,5(NE)}.
ant> 	MarbleList = Position | MarbleList Position.
ant> 	Position = See Note below.

ant> I propose to number the board in the following form:
ant> 	- Center hole = 0
ant> 	- continue numbering in the same direction as writing (0-4 in line
ant> 	  5, 5-12 on line 4, ...)
ant> 	- symetrically number the remaining holes with negative numbers
ant> This scheme has the main advantage of being symmetric with respect to
ant> the colors. If both progs play white, all moves can be negated to make
ant> them work for black.

I'll send out a separate message commenting on protocols.

>would be a fine name.  I'll try to think of a name for my program.

ant> Ok. An old version once was called compalone; I'll rename it for
ant> release.

ant> - ant

I was thinking about MIT-Abalone for ours.

-Mike