/// <summary> /// Is a capture legal? /// </summary> /// <returns></returns> private bool IsCaptureLegal(IPiece piece, ICapture capture, IBoardState state) { piece.GenerateCaptures(state, ActivePlayerBoardState); bool canPieceCapture = piece.CanCaptureAt(capture.EndingPosition); bool doesCaptureLeaveKingInCheck = DoesPotentialMoveLeaveKingInCheck(capture); return(canPieceCapture && !doesCaptureLeaveKingInCheck); }