nymann / KCE

A chess engine by Kristian Nymann Jakobsen.
1 stars 0 forks source link

Improve move ordering. #21

Open nymann opened 7 years ago

nymann commented 7 years ago

We should take advantage of itterative deepening by implementing transposition tables (https://chessprogramming.wikispaces.com/Transposition+Table), and thereby improve ordering by first searching the previous depth levels best move.

https://chessprogramming.wikispaces.com/Move+Ordering

nymann commented 7 years ago

In order to do this, we must first and foremost implement Zobrist hashing. We'll have a public field variable ulong PosKey { get; set}, which is set everytime we make a position, and unmake a position.

When that is implemented we further open up for Late Move Reductions. Which means that when we have ordered our movelist from best to worse, we can search the best moves at a greater depth. (Torvad suggest the 4 greatest moves), and the rest at a lower depth.

nymann commented 7 years ago

This also opens up for saving the legal moves at each depth.