Chess Move Generator
In search algorithm, a good move ordering is rewarded by the reduction in tree sizes and faster searches. An example of a good chess move ordering is:
- 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.
MVV/LVA (Most Valuable Victim / Least Valuable Attacker) move generator. The general idea is to first generate capture moves with the most valuable capture piece and least valuable attacker piece (e.g. pawn captures queen).