Piglet is a UCI complaint chess engine, written in C++.
Piglet is a UCI (Universal Chess Interface) chess engine. The engine can be downloaded from Github and played within a UCI (Universal Chess Engine) GUI such as Arena. To play against Piglet, download Arena, download the Piglet engine executable, and load the Piglet engine into Arena.
Alternatively, a Piglet bot can be played online at Lichess.org. Sign in to Lichess.org and search for piglet_engine.
The following techniques were used in the coding of the engine:
- UCI Interface
- 0X88 Board Representation
- Negamax search with Alpha Beta pruning
- Iterative Deepening
- Principle Variation (PV)
- Pondering
- Zobrist Hash Keys/Transposition Table
- Move Ordering MVV/LVA (Most Valuable Victim/Least Valuable Attacker
- Move Ordering – PV Sort
- Quiescence Search
- Perft (Performance Test, move path enumeration)
- Perft Hash Key verification
- Move Representation
- Move Generation
- Castling Representation
- Piece Representation
- Piece List
- Attacks Finction
- In Check Function
- FEN Parse
- Evaluation
- Killer Heuristic
Planned future enhancements:
- Enhanced Evaluation Logic
- 50 Move Rule
- Threefold Repitition Rule
- Null Move Heuristic/Pruning
- Late Move Reduction
- Futility Pruning
- Add Static Exchange Evaluation to the Quiescence Function
Leave a Reply