bhlangonijr / chesslib

chess library for legal move generation, FEN/PGN parsing and more
Apache License 2.0
229 stars 80 forks source link

Check if a move is pseudo-legal without generating the list of pseudo-legal moves #114

Open fathzer opened 1 year ago

fathzer commented 1 year ago

Hello,

Thanks a lot for this very impressive library, very useful for people like me, totally unable to understand how bitmap works πŸ˜‰

I saw that the issue 5, 76 and 112 (related to board.isMoveLegal returning true for some illegal moves) are closed. I wonder how I can check if a move is pseudo-legal without generating the whole moves list. If it’s not possible, may I suggest adding a method to do that?

Here is my use case: A classical tree search optimization is to check, before generating any move, if a killer move, or a best move found in a transposition table, leads to a tree cut. In both cases we must ensure the move is pseudo-legal before generating the whole move list (because checking if a move is pseudo-legal is usually far faster than generating all moves).

Thanks for reading 😊

bhlangonijr commented 1 month ago

It's been almost a year without a response, but we really should add these functions at some point. If anyone out there has the time and would be willing to help, I’d greatly appreciate it! Otherwise, I'll try to tackle it myself when I can find some spare time. :)

Oziomajnr commented 1 month ago

I can help add this functionality.