Back Up Next

Programming Topics

This page will contain links to a series of essays on computer chess topics, as I have time to write them.  The topics are oriented toward those who want to write their own chess program, or understand how chess programs work.

I do not mean to describe ever conceivable way of writing a chess program.  It is my intent to talk about common techniques, in some cases with a personal perspective since I have implemented a lot of this stuff.

As of this moment, I am writing all of this stuff off the top of my head.  There are a lot of people that need credit for these ideas, and in many cases I don't know who to credit.  I will figure this all out eventually and provide some history when possible.  I will also provide some amount of experimental evidence in order to support some claims that I make.

If you want a fully functional chess program, including source, you are free to download my free chess program Gerbil, and you can see practical examples of some of the techniques that I describe.

  1. Basic Search Techniques
    1. Search Tree Introduction
    2. Min-Max Search
    3. Alpha-Beta Search
    4. Principal Variation Search
    5. Quiescent Search
      1. MVV/LVA Move Ordering
      2. Static Exchange Evaluation
  2. Some Other Search-Related Topics
    1. Collecting the Principal Variation
    2. Iterative Deepening
    3. Aspiration Windows
    4. Checkmate/Stalemate Scoring
    5. Contempt Factor
    6. Fifty-Move Draw Detection
    7. Hash Tables
      1. Zobrist Keys
      2. Transposition Table
      3. Repetition Detection
      4. Handling mate scores
  3. Advanced Search Topics
    1. Multiprocessor Search Techniques
    2. Null-Move Foward Pruning
    3. Other Pruning Techniques
    4. Search Extensions
      1. Check Extension
      2. Single-Response Extension
      3. Recapture Extension
      4. Singular Extension
      5. Mate-Threat Extension
    5. Search Instability
  4. Move Generation and Move Ordering
    1. Move Generation Techniques
      1. 0x88
      2. Move Table
      3. Bitboards
    2. Move Ordering
      1. Killer Moves
      2. History Heuristic
  5. Search Control
    1. Pondering
    2. Time Allocation
  6. Evaluation
    1. Piece-Square Tables
    2. Pawn Evaluation
    3. King Safety Evaluation
    4. Piece Evaluation
    5. Endgame Databases
  7. Thoughts

Free counters provided by Andale.

Send mail to with questions or comments about this web site.
Copyright 2001 Bruce Moreland
Last modified: 01/24/03