Chess Move Generator
In search algorithm, a good move ordering enables us to reduct the tree sizes and search faster. An good chess move ordering can be:
- checking moves, direct and discovered,
- promotions,
- capturing moves, ordered by most valuable victim / least valuable aggressor (MVV/LVA),
- non-capturing moves ordered according to history heuristic.
The general idea of MVV/LVA is to first generate capture moves with the most valuable capture piece and least valuable attacker piece (e.g. pawn captures queen).