Wednesday, June 25, 2008

Prédateur 0.1.4r2 bugfixed

The last release had a serious bug that prevented Prédateur from checkmating its opponents or see the checkmates. Its strength was thus severely severed. I'm sorry for those of you who bothered testing it. I took more time to test this one in depth before releasing it.

This is actually not a bugfix version only. Here is a list of the changes :

  • added a special time manager to handle 1) games with no time increment 2) grumpy testers
  • fixed an horrible bug in the checkmate handling
  • a first try with null-move (verified null-move)
  • total hash default size reduced to 64Mb (48 main + 16 quiesce). You can change those default sizes in the uci options.

Saturday, June 21, 2008

Prédateur 0.1.4 escaped!

Beware! The latest Prédateur just escaped and seemed to be in a playfull mood last time I met him...

This update is quite a major one. Maybe not in the playing strength (test will tell) but certainly from a user point of view. The code has been seriously cleaned up too and made ready for future improvements. I decided to postpone its translation to bitboards, as I could triple its speed by improving the current move generator. Here comes a summary of changes and improvements :

New functionalities :
- takeback implemented
- Prédateur now polls the console during its search and reacts to "stop" and "quit"
- Prédateur now handles FEN strings, though only allowing legal positions (Predateur can thus now be used as an analyse tool)
- UCI options uci Main_Hash added, allowing the user to set the main hash table size, and the uci option Quiesce_Hash that does the same for the quiescence search hash table
- Search extension for forced moves (that way Prédateur sometimes find deeper mate sequences)
- Algorythm to checkmate the naked king.
- perft tests implemented : Prédateur passes it successfully for all the test positions I tried (command : "perft x", x being the depth)
- a readme file
Modifications :
- The quiescence search hash table is back (small speed improvement)
- Evaluation function modified and speeded up :
-> penalty for isolated pawns
-> towers on (semi-)opened columns
-> pieces-square tables
-> attempt to develope minor pieces in the opening
- Check test and move generator partly rewrote.
Result : >+100% nps compared with Prédateur v0.1.3b2!
- Moves lists now sorted with quicksort instead of bubble sort. (+15% nps!)
- Better move ordering (Prédateur plays around 1.1 moves out of 30!)
- Time use slightly improved (?)
Corrected bugs :
- Yet another mate bug fixing attempt (the ultimate one?)
- bugs removed from the Restaure() function (castle flags might got lost)
- Another big bug eradicated from the Restaure() routine : Non initialized to zero, it made Prédateur compute lots of useless stuff.
- perft allowed me to correct several bugs :
-> the check test only took into account original knights, not pawns turned into knights - fixed
-> en passant capture broken - fixed