There should be a quick way to check for only legal moves with checks and captures.
mrgwbland opened this issue · comments
George Bland commented
You can get just the legal moves which are captures so why not for checks as well? It would be a lot better than having to do the following code:
Move[] legalMoves = board.GetLegalMoves();
foreach (Move move in legalMoves)
{
board.MakeMove(move);
if (move.IsCapture||board.IsInCheck())
{
code
}
else board.UndoMove(move);
}
Edward-789 commented
The API cannot check if the board is in check without actually playing the move and then checking if the board is in check.
Tim de Jong commented
Edward is correct, and it's probably not getting changed, so you'll have to just spend the tokens if you want a list of checking moves