The Version 2 computer opponent


The computer searches a variable number of moves ahead, depending on how much time you have given it. It is biased towards savcing time for the endgame, where it is most needed.

The computer knows the strength of the pieces (If you wish to change them, they are hard-coded into the board.cpp file. The relevant figure is the last one after all the false and trues, immediately before the closing bracket. Do not change the figure for the Pawn (100), as the system is built around this. After having made any change, you will have to re-compile the computer opponent).

It does play all the rules correctly (if you find otherwise, then this is a BUG, and you should report it to me, whereupon I will fix it.

Version 2.1 and later incorporates a hash table for checking on transpositions. This speeds up the search, but it requires some memory to make it work. The default allocation is 1.5 MegaBytes. This is currently not used in Mating Problem Mode, but the memory is still allocated, so use the minimum.

You can increase this from the Computer sub-menu of the Setting menu. There are two settings.

The basic amount is all that you need to set. However you can also try experimenting with the Memory replication factor. This doubles (or trebles, or greater, but you are not advised to go beyond x3) the basic allocation, so as to allow for more than one position with the same low-order bits of the hash code (or indeed, identical hash codes, but different positions (different checksums)). There is a statistics option on the debugging menu, to help you tune these settings, but you probably have to look at the source code in search.cpp to make sense of it all (though see the menus help for more information).

In any case, you should not allow any paging to take place, otherwise this will kill performance. Also, you must allow for memory growth as the program progresses (though this should be very little indeed with version 2.2 or later).

Top