Raven 0.70
Version 0.70 of Raven Chess Engine.
New features:
Search:
Use depth * depth instead of 2 ^ depth for history values.
Mate distance pruning.
Sort move with best SEE score (>=0) above other captures.
Use SEE score to group losing and winning captures for move ordering.
Eval:
Bonus for rooks/queens on 7th rank.
Bonus for pieces attacking enemy king zone based on number of attackers and square attacked.
Decrease mobility score when squares are attacked by pawns.
Bonus for passed pawns based on file.
Speed ups:
Calculate PST values at same time as mobility.
Calculate doubled/isolated pawns, rooks on open files more efficiently.
Faster qsearch movegen.
Use ints to represent pieces and use arrays of bitboards in the position struct.
Use lookup tables for kings and knights in SEE, eval, and isCheck.
Generate all pawn moves at the same time.
Bug fix:
Fixed a serious bug where Raven would sometimes draw by repetition in positions where it could mate.
Version 0.70 is available for download for Windows and Linux (only tested on Ubuntu).
Update 25/12/2019: Fixed bug with time extensions in repeating time controls.
Update 6/1/2019: Fixed bug with crashing on incomplete fens (e.g. "1N6/2p2k1p/1b1p2p1/p2P1p2/Pp3P2/1P3KP1/2P2P2/8 b")