Currently my program generates valid moves by doing the following:
- getting list of moves for current player
- getting list of moves for opponent
Then it checks for each (+/-) move if after that move the king can (still) be captured.
Of course it doesn't need to do that verification for each move, only when
1 the piece moved is the king
2 the king is pinned
3 the move is en passant
4 the king can be captured
1, 3 and 4 are easy to figure out but what about 2? Currently I have that information after I've generated the list of moves of the opponent. But if I don't want to generate that opponent list, do I need then to search all paths from the king until I first reach a piece of my own and then an opponent? Or are there quicker ways?
Remarks: current version uses https://raw.githubusercontent.com/MJoer ... tsuite.epd to verify that it is correct, and it is but only slow

