Ax

I. What is Ax

Ax is my first (western) chess program, running in MS Windows environment (Win98 or above), using WinBoard (WB) or Arena as its graphic user interface (GUI). Other names of this program are ChessAx and AxChess.

I created Ax for some purposes:

  • To enjoy myself.

  • To join computer chess communities. Even people of those societies seem be so odd and crazy (at least in view of my wife ;) ) I still want to be a real member. I visit daily some computer chess clubs and forums, read many technique papers, but writing a chess program seems be a better way to join.

  • To get comments, suggestions and bug reports from users and computer chess experts. They have been helping me to improve my program and my knowledge much faster.

  • To wave my nation’s flag (Vietnam) on some chess sites.

 

II. Some details

Ax can (I hope) understands all chess rules, including some difficult rules to implement (repetition, en passant and promotion to other pieces than Queen).

The first and main difference from majority of good engines is that its board representation is a simple array of 64 (it is not bitboard, x88 nor mailbox). It does not use attack table nor pawn hash table. SEE (Static Exchange Evaluation) function is recursive style. I tried to apply some popular techniques I knew and could implement such as PVS search, history search, fractional depth, null move, hash table and so on. I have managed to make them work correctly (but not sure if I was successful). Ax is programmed by Object Oriented Programming (OOP) method, using Microsoft Foundation Classes (MFC) without any Assembly line and compiled by Visual C++ 6.0.

Version Move now Edit mode Analyze mode Opening book Ponder On/Off Hash table Table Base Draw claim Resign
0.8 Yes Yes Yes Yes Yes Yes No Yes Yes

Configuration: Ax.ini
Log file: log.txt
Opening book: AxOpening.dat

III. History

Ax is updated with frequency of one week per version in the first period in order to clean serious errors and give it enough abilities to join WB's tournaments. When it becomes stable, the interval between versions will be much longer.

27 July 2002, Ax 0.8

  • Add resign mode.

  • Search: Turn on razoring, which was off in last version by mistake; some changes make it little faster and more effect.

  • Evaluation: few small changes.

13 July 2002, Ax 0.7

  • Fix a bug in evaluation which might make Ax play suicide moves.

  • Add analyze mode.

  • Add position learning function.

  • Evaluation: few small changes.

29 June 2002, Ax 0.6

  • Fix two serious bugs: one in search function, one in function to checking repetition (they might make Ax play suicide moves).

  • Continue to improve time management.

  • Search: some small changes to make search little more effectively and little faster.

  • Evaluation: remove bishop's mobility; enhance pawn and king safety scores;  change values of bonuses and penalties to make Ax play more balance.

22 June 2002, Ax 0.5

  • Improve time management which still made Ax lose in time.

  • Change display's information: score's unit from pawn to centi-pawn, time's unit to centi-second (easier to process for GUIs).

  • Search: limit some extensions; few small optimizations.

  • Evaluation: rewrite King safety and castle (problem in previous version); rewrite Bishop's scoring with new functions for tropism and mobility.

15 June 2002, Ax 0.4

  • Fix a serious bug in SEE function.

  • Improve speed: use new method for move generator (table-lookup), re-write SEE function (still recursive function).

  • Improve/change Evaluation function: convert back to old ways of scoring for Knights, Bishops and Kings (remove almost all last improvement of evaluation); fix a bug in Bishop scores; new phase for endgame; add few things to pawn scores; know some cases of trading; reduce some bonus/penalty values to make Ax keep materials more carefully.

8 June 2002, Ax 0.3

  • Fix some bugs (might not run if time/move was around 0.5 second - e.g. level 100 1 0; a bug made Ax hard to find draw after checking; a rare bug inform Ax that game was over; print wrong castle moves, e.g. 0-0 and 0-0-0).

  • Improve time control with parameter mps not equal 0 (such as level 40 40 10) which may make Ax lose on time.

  • Change time unit of Ax from 0.5 second into 1 millisecond. Thus, Ax can play any kind of very fast games (such as 100 move/1 minute). I guess that those kinds of games will be played more frequently in near future.

  • Add small opening book of over 12 K positions.

  • Improve little search speed and evaluation function.

1 June 2002, Ax 0.2

  • Fix some bugs (did not run in human-computer mode in WB; wrong declared that some moves were illegal).

  • Add configuration file Ax.ini to set hash table size as well as some others.

  • Improve little search and evaluation function.

24 May 2002, Ax 0.1. That is the first version to public. Support WB’s protocol with basic functions. No opening book, no EGTB, no knowledge about endgame. Simple evaluation function.

 

IV. Download

Ax is totally free. However, to distribute it to other people you must include all files in the original distribution and those files must be left unmodified.

Ax is hosted by WBEC Ridderkerk Page as its main place (thank Leo):

Ax also can be downloaded from Ax's home page as the minor place:

 

V. Some useful links about WinBoard and Chess Engines

 

VI. Acknowledgement

Special thanks go to Tom Kerrigan and his chess program TSCP – the program taught me chess programming firstly. Special thanks go to Dr. Robert Hyatt, who I highly admire because of his knowledge, helpfulness and contributions. I have learnt much from his famous program Crafty. Thanks also go to all other chess programmers and users – who made me feel crazy with computer chess.

Here are some nice logos of Ax, created by Wilhelm Hudetz (Austria) and David Dahlem (USA). Many thanks to Wilhelm and David.

                          

 

VII. Contact

You are more than welcome to write to me Pham Hong Nguyen. Comments, suggestions, bug reports and English corrections are always highly appreciated.


Copyright by Pham Hong Nguyen, 2002
http://www.geocities.com/axchess

axchess@yahoo.com
.

Last revised: July 27, 2002