Move Generator Scope


The move generation scope allow testing a buggy move generator if we have a trusted chess engine available. For my testing I used Sharper v0.17 by Albert Bertilsson.
The error MGenScope will discover are:
  • Move not generated in a defined position
  • Invalid move generated in a defined position
  • Position mistake after a move ( DoMove mistakes )

for all the error all the data needed to reproduce the error are available in the UI and can be saved by cut & paste.
Here below some output samples after a testing:
mgen2.png mgen3.png

In order to test a couple of engine both needs to follow these minimal


  • Be a console application accepting command from Standard Input and playing results on Standard Output ( as almost all engines do )
  • Be able to setup the board to a given FEN string ( generally the "setboard" command)
  • Be able to display the current board in fen format ( generally the "savepos" or "fen" command )
  • Be able to force a move in the format "a2a4" without doing any calculation ( sometimes this requires a "force" command )
  • Have implemented the divide <n> command
  • Emitting some recognizable string at the end of the divide command

MGenScope does not help if your implementation of UndoMove does not work. I did not felt this as a problem because checking DoMove/UndoMove consistency it's easy to do internally in the Perft implementation ( just compare the fen befor domove and assert the equality after undomove, this slow down the perft, but has not to be enabled always).

Just because there is not a real standard engine communication has to be configured. The default configuration works for the engine Sharper, so if you want to use it you can use the same divide / setboard / savepos syntax for both input and output, or check the MGenScope Configuration Page.

How to use

Select the engine by pressing the button near the edit box at the top of the dialog window. The first engine is the one who generates good moves, our engine is the one immediately below. Configure the engine I/O if required using these guideline: MGenScope Configuration Page.
Insert the FEN string you want to test, and the desired depth and wait for the report after pressing the "Start" button.

Last edited Nov 1, 2008 at 12:32 PM by felixpollan, version 11


No comments yet.