@ -792,11 +792,14 @@ proc checkedMove*(chess: var Chess, move: Move): bool {.discardable.} =
chess . uncheckedMove ( start , dest )
chess . uncheckedMove ( start , dest )
chess . toMove = Color ( ord ( chess . toMove ) * ( - 1 ) )
chess . toMove = Color ( ord ( chess . toMove ) * ( - 1 ) )
if createEnPassant :
if createEnPassant :
chess . enPassantSquare = dest - ( N * ord ( color ) )
if chess . board [ dest + E ] = = BPawn * ord ( color ) or
chess . board [ dest + W ] = = BPawn * ord ( color ) :
chess . enPassantSquare = dest - ( N * ord ( color ) )
if capturedEnPassant :
if capturedEnPassant :
chess . board [ dest - ( N * ord ( color ) ) ] = 0
chess . board [ dest - ( N * ord ( color ) ) ] = 0
if ( ( fieldToInd ( " h8 " ) < dest and dest < fieldToInd ( " a8 " ) ) or ( fieldToInd ( " h1 " ) < dest and dest < fieldToInd ( " a1 " ) ) ) and
if ( ( fieldToInd ( " h8 " ) < dest and dest < fieldToInd ( " a8 " ) ) or
chess . board [ dest ] = = WPawn * ord ( color ) :
( fieldToInd ( " h1 " ) < dest and dest < fieldToInd ( " a1 " ) ) ) and
chess . board [ dest ] = = WPawn * ord ( color ) :
chess . board [ dest ] = prom
chess . board [ dest ] = prom
chess . previousBoard . add ( chess . board )
chess . previousBoard . add ( chess . board )
chess . halfMoveClock = chess . halfMoveClock + 1
chess . halfMoveClock = chess . halfMoveClock + 1