alexboby.com >>> pierre

  

Pierre & Chess Programming

Last updated on Wednesday, April 5th, 2000

General Information




Pierre is a chess engine. I began working on him in March of 1998 and am slowly modifying him as time permits. I run him regularly on both chess.net (Pierre) [rated approximately 1650] and FICS (PierreC). Pierre includes the following features: time based alpha-beta, PVS (minimal window) style searching; iteritive deepening with aspiration; bitboard move generation; a static opening repetoire without learning capabilities; and a positional evaluation based mainly on material.

Immediate plans for the future include the implementation of hash (transposition) tables and other move ordering procedures, book learning, a much more detailed evaluation function (especially for the endgame) and quiescence searching. All of these things will be included in v2.0 when the time comes.

Note that the interface is strictly text based but is compatible with the xboard/winboard protocal (See Tim Mann's Page). Xboard/Winboard is very easy to use and will give you a nice graphical interface to Pierre as well as the ability to run Pierre (or any other winboard compatible chess engine) on an Internet Chess Server such as ICC, FICS or ChessNet.


History

March 18th, 1998 Became inspired to write a chess program and began work.
April 28th, 1998 Completed the minimax algorithm & pierre played his first game, losing badly.
June 8th, 1998 Completed the alpha/beta pruning algorithm. Interfaced the program with xboard/winboard and released version 1.0. Began playing on ICS.
June 26th, 1998 Completed the basic opening book just to give a little bit more variation in the first few moves. Version 1.2.
October 25th, 1998 Improved endgame king positioning. Version 1.3.
November 23rd, 1998 Draw by repetition is now recognized. Version 1.4.
January 16th, 1999 Implemented underpromotion and algebraic notation
April 15th, 1999 Completed the conversion to bitboard move generation.
April 24th, 1999 Added support for PGN and FEN chess notation.
June 5th, 1999 Implemented iteritive deepening with aspiration and principal variation search. Switched from depth-based to time-based searching.

You can also view a much more detailed log.


Files



pierre_wintel_1.4.zip This is the 32 bit Windows version 1.4. I leave this here because many people prefer a weaker challenge.
pierre_linux_1.4.tar.gz This is the linux binary version 1.4.
pierre_wintel_1.7.zip Windows 95/98/NT 32 bit executable version 1.7. Much thanks goes to Dann Corbit for porting this.
pierre_linux_1.7.tar.gz Linux binary version 1.7. This is the current version running on ICS.
pierre_source_1.4.zip
pierre_source_1.4.tar.gz
pierre_source_1.7.zip
pierre_source_1.7.tar.gz
The source code is written in C. There is no makefile (yet). Just compile the file [pierre.c] and run the executable! Note that any file [*.pbf] is an opening book and must be present in the same directory as the compiled program in order to work properly.

Test Suites




Test Name min/pos v1.71 v1.72
WAC 1:00 166/300 ? soon
Louguet2 10:00 4/35 ? soon
WCT 5:00 29/45 ? soon
bt2630 10:00 2/30 ? soon

1: P166MMX 48M Linux 2.0.35 system
2: P500 128M Windows NT 4.0 system



Chess (Programming) Links