IntroductionPawny is UCI chess engine with estimated strength 2700 ELO CCRL / 2500 ELO CEGT.
||Windows, Linux, Source|
Board representation and move generation:
Magic bitboards, reduced array access apporach. Pseudo legal move generator.
Search techniques used:
- Iterative deepening
- Alpha-Beta PVS + aspiration (1/5 PAWN)
- Internal Iterative Deepening
- Adaptive Null Move Pruning
- Futility Pruning
- Delta Pruning at Quiescence Search, based on SEE results (1 PAWN value margin)
- Late Move Reductions (4 Full depth and Reduction of 1 ply)
- Killer and History Heuristics
- Transposition Table (1 table/4 entry bucket)
Check Extension (1 ply)
At this time, the evaluation function is still simplistic.
It evaluates material, psq tables for each piece.
Basic terms in pawn structure are in place – doubled, hanging, passed, backward pawns.
Piece evaluation takes into account factors that are valid game phase independently.
Game phase evaluation includes just a couple of things:
Opening evaluation with basic info for piece development,
midgame evaluation – mobility, center control. Both in combination with king safety.
Rook and Knights material imbalance calculations.
Endgame evaluation – Distance and support for passed pawns.
Static exchange evaluation – for 'presumably bad' captures only.
3-4-5 Men Gaviota tablebases support.
For more information, please visit: Gaviota chess engine's website.
Missing Features, Known Bugs and To-Do List
This is a simple engine and there is a lot of room for improvement.
So far it has been tested mostly with ChessBase and BabasChess interfaces.
It works under Arena with the remark that output is liable to further changes and improvements.
More sophisticated time control would be nice as well.
For now is used just a simple time control management that only excludes new iteration
if there is not enough time for it – also a record in the to-do list.
ContactFor any impressions, remarks and suggestions, email me at: firstname.lastname@example.org