Programming Topics (original) (raw)
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.
- Basic Search Techniques
- Some Other Search-Related Topics
- Collecting the Principal Variation
- Iterative Deepening
- Aspiration Windows
- Checkmate/Stalemate Scoring
- Contempt Factor
- Fifty-Move Draw Detection
- Hash Tables
- Advanced Search Topics
- Multiprocessor Search Techniques
- Null-Move Foward Pruning
- Other Pruning Techniques
- Search Extensions
- Search Instability
- Move Generation and Move Ordering
- Move Generation Techniques
- 0x88
- Move Table
- Bitboards
- Move Ordering
- Killer Moves
- History Heuristic
- Move Generation Techniques
- Search Control
- Evaluation
- Piece-Square Tables
- Pawn Evaluation
- King Safety Evaluation
- Piece Evaluation
- Endgame Databases
- Thoughts
Free counters provided by Andale.