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.