Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Getting Started...

Author: Steve Maughan

Date: 07:32:32 01/15/02

Go up one level in this thread


Glenn,

Here a plan:

1) Decide how you're going to represent the board.  I'd suggest x88 or array.
If you're feeling ambitious then bitboards

2) Code the AddPiece / RemovePiece routines.

3) Decide on how you're going to store a list of moves - probably use some form
or struc or record (Pascal)

4) Have a go at generating all of the legal moves excludiung ep, castling and
promotions

5) Make sure that from the initial position you can generate 20 moves - you're
getting there!!

6) Add the capability to generate castling, ep and pawn promotion

7) Add a SetupPosition function and test the move generation on many different
situations

8) Create a MakeMove routine.  This is quite tricky - it needs to update quite a
few flags (e.g. castling, possible ep next move, moves since capture/pawn move
etc)

9) Create and UndoMove routine

10) Test these by making and undoing all the moves from your test positions

11) Create a simple evaluation function based on PieceSquare tables.

12) Add the AlphaBeta search and QSearch routines - don't be too ambitious.
Don't bother with Null move or search extensions at this stage.  Get the search
working well - this *will* be frustrating!!  MAke sure you undertand the basic
Alpha Beta before you add PVS.

13) You basically have a working engine.  To progress further you should make it
Winboard compatible.  This is more important than adding flash search heuristics
at this stage as it will allow you to play against other programs and get rig of
some nasty bugs.  Read Tim Mann's page on engines.

14) Add some move ordering - probably SEE - it's tricky to get right but well
worth it.

15) Add Null Move, Killer and History.

16) When the search is stable add Hash tables and draw by three moves
repitition.

17) When the program is stable add Pondering

18) Create an opening book

19) Finished!!  Well almost - now you can add fancy search routines and
evaluations terms - so it's really just beginning.

Hope this helps!

Regards,

Steve



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.