Geras1mleo / Chess

C# .NET 6.0 Chess Library
MIT License
49 stars 15 forks source link

Promoting moves from UCI are not accepted #4

Open brane-games opened 1 year ago

brane-games commented 1 year ago

When a match between engines using UCI is played, a promoting move has the format of: h7h8q. This move is not accepted by the library and I believe it should be. Of course it is trivial to convert the h7h8q to h8=Q but I believe this should be supported out of the box.

To Reproduce

var board = ChessBoard.LoadFromFen("8/4R2P/3K4/8/p7/P2b4/1P6/3k4 w - - 3 68");
board.Move("h7h8q");

Expected behaviour The move is accepted.

I'd be willing to implement this myself if you agree that this is a bug. Thanks a lot for the great library!

Geras1mleo commented 1 year ago

This library supports SAN and default methods use mainly SAN. If you are willing to implement your format (I am totally supporting it) you should add new builder class (next to SanBuilder) and new class in Convertions/ folder with public parsing methods. Dont forget about testing ;) I appreciate your interest in my library!