Mar 25, 2007

[New Version] v0.3 - New evaluation, SEE and LMR

  • Mediocre is now stable enough to leave the beta, this is the first 'sharp' version
  • Complete redesign of the evaluation
  • In line input mode the command 'eval' now prints a list of the results of the different evaluation segments
  • New piece lists that store every type of piece in its own list, no more looping over the pawns to check for promoted pieces
  • Simple late move reduction added, every move after the first four are reduced with one ply if they were not a capture or a check
  • Static exchange evaluation added, used for sorting of both ordinary and quiescent moves
  • Losing quiescent captures (captures that lose material) are now pruned
  • New move generation methods gen_caps and gen_noncaps replaces the old generatePseudoMoves
  • Sorting moves is now handled inside the alpha-beta method, it is done step by step so we do not have to generate all moves up front, but rather one portion at a time
  • Move legality (not leaving king in check) is now verified when the pseudo-legal move is being played in the alpha-beta method instead of verifying all moves up front
  • With the new move sorting all non-losing captures are searched before the killer moves, the killer moves can only be non-captures now
  • The UCI protcol would crash the engine if an illegal move was sent in the position string, while this really should not happen Mediocre now recognizes illegal moves and sends an error message instead of crashing
Note: Thanks to Daniel Shawul and Tord Romstad for having such great open source engines (Scorpio and Glaurung), and also Ed Schröder and his website.


1 comment:

Jaco van Niekerk said...

Congratulations with finally moving away from beta. You have an impressive piece of work here and it is great that people are also considering Java as a language for writing chess engines. Good luck with the upcoming tournaments and keep up the good work.