Both bitboards and other structures.
Will start with basics functions in order to get an uci engine that knows the rules.
-
Nullmove
-
Hash, simple version
-
Pawn hash
-
Killer, 2 entries
-
HistoryTab, will test 2-3 different structures
-
Some evaluation for pawns and the rest PSQ tables
-
Move ordering, based on the above
One of my ideas that I put some extra effort in:
-
Trying to more precise predict the node type: All, Cut or PV. Sometimes an All node turns out
to be a Cut node after re-search and a Cut node turns out to be an All node.
-
Aggressive usage of that extra knowledge of node type in order to guide the search.
My intention from the beginning was to create an engine specialised for end games before dealing
with the rest. That changed as almost everything else in this project!
Even if the end game play is ok I wouldn't claim it is a specialist. I hope to not use EGTB tables
but another technique that might help a little later on.