Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: ways to factor chess engine from UI

Author: Brian McKinley

Date: 18:54:11 02/20/98

Go up one level in this thread


On February 20, 1998 at 15:45:11, Greg Manning wrote:

>What are the methods commonly used for factoring a chess-playing
>engine from the rest of a chess program (e.g. user interface)?
>
>As far as I can tell:
>  - GNUchess command line used by xboard   (yuck)
>  - appleevents used by ExaChess           (mac only)
>  - CEngine class used by The Crazy Bishop (GNU license)
>  - Minimax command line used by chess232  (I can't read German)
>  - telnet to an ICS
>
>I'm not thrilled by any of these and I'm wondering what others exist.
>Generally, I like the C++ class idea best but prefer to avoid GNU
>for this.  Is it a dumb idea to design a new one from scratch?
>
>Sorry if this is a FAQ.
>
>thanks,
>
>Greg

I don't know of any others, but I though you might find my recent
experience with the same issue helpful in making a decision.  I am
writing my first chess program and I didn't want to spend any time
writing a user interface.  Because my main goal was to create a program
that would play on ICS I chose the 'telnet to ICS' approach.  This
allows me to use any user interface that will connect to ICS.

I have separated the engine from the details of input and front end as
much as possible.  There is a game object who's constructor takes a
socket connection.  Moves from the program are sent out on this
connection.  Moves are passed to the game through a public member
function.  Except for the format of the move, the game doesn't need to
know anything else.

You should be able to build (except the mac only) a bridge to any of the
interfaces you mentioned on top of this simple framework.

Eventually I will get around to making the Game Class into a COM object,
but I thought I would be better to make it play decent chess first.

I will send you the game object frame work and the code to connect to
ICS if you like.  I am using command formats that are specific to ICS so
you will need to make some changes if you want to connect to FICS.

The code is Microsoft specific.  It relies on the multi-threading
functions for Windows NT and Windows 95.  I am not using MFC, but even
so I don't know how easy it would be to port to another platform.

brianm@motek.com



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.