https://bugs.kde.org/show_bug.cgi?id=447665

--- Comment #1 from Dave Kaye <d...@linuxmail.org> ---
Created attachment 147654
  --> https://bugs.kde.org/attachment.cgi?id=147654&action=edit
Patch file Bug 447665

Knights utilizes code found in xboardprotocol.cpp to create a move string.  The
string describes the chess move in Xboard protocol to be sent to an Xboard
compliant chess engine.

To generate a move string including a pawn promotion, the Knights code starts
out with a generic call to move.cpp to create a string.  An example string
returned is:
e7e8=Q
Then the string is modified in xboardprotocol.cpp to remove all capitals:
e7e8=q
This string is then sent to the chess engine.  But the xboard protocol
documentation requires the string to be:
e7e8q

Early on in chess engine development there were multiple formats to communicate
with chess engines.  Some utilzed an = sign between move and promotion piece. 
But the Xboard system slowly became the standard for communication.  Some chess
engines will also accept the = sign in Xboard mode to be historically
compatable.  Specifically, the following engines will accept the = sign and
will run:
GNUchess6, Crafty, Phalanx XXV and Gully2.

Other (usually newer) engines require the correct Xboard protocol.  They will
stop play with an illegal move response if the move contains the = sign.  Some
examples are:
Greko, Dreamer, Sloppy, Beowulf and Prophet4.

A patch was developed based upon the UCI code to generate the correct Xboard
move string. That patch is attached to this note.  When applied to the Knights
code, **ALL** of the above engines accept the pawn promotion move and continue
to play.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to