Computer chess techniques
Djinn uses
most of the following techniques and algorithms in one form or another
(or if not currently, then more than likely soon). This page is a work in progress. As I
learn more, and find the time, I intend to transfer that knowledge here.
- Min-max Search
- Alpha-beta Pruning
- Iterative Deeping
- Null Move
- Zugzwang
- Verified Null-move Search
- Adaptive Null-move Search
- Quiescence Search
- Checks in the Quiescence Search
- Internal Iterative Deeping
- Collecting the Principal Variation
- Extensions
- Checks
- Mate-threat Extension
- Pawn Pushes
- Recapture Extension
- Singular Extension
- Reductions/Pruning
- Repetition Check
- Bitboards
- FirstOne (findlsb/findmsb)
- Population (or Bit) Counting
- Inline Assembly
- Rotated Bitboards
- Move Generation
- MVV/LVA
- Static-Exchange Evaluation (SEE)
- Move ordering
- Ordering moves at the root
- Hash move
- Killer moves
- Killer mate moves
- History Heuristic
- Evaluation
- Opening
- Middlegame
- Endgame
- Passed Pawn
- Rule-of-the-Square
- Bahr's Rule
- King Safety
- Defects
- Enemy Piece Tropism
- Delayed Castling
- Control of the Squares Around the King
- Interior-Node Recognizers
- Bitbases
- Hash Tables
- Zobrist Keys
- Adjusting Mate Scores and Bounds
- Pawn Hash Tables
- Evaluation Hash Table
- Internal Iterative Deepening
- Opening Book
- Learning
- Opening Book Modification
- Position Learning
- Endgame Tablebases
- Xboard/Winboard