chess:programming:checklist
Table of Contents
Chess - Programming - Checklist
A list of items to consider using:
BitBoards
- Board. [done]
- Magic Bitboards. [done]
Grids
- Traditional grid. [done]
Move Generation
- Opening Books.
- Own format. [done]
- Huffman.
- Polygot. [done]
- Random Move Generation. [done]
- Staged Move Generation.
- Some programs do not generate all moves at once, but do it in several stages (i.e. hash move first, then captures, then killer moves, then all the rest in a chunk) on the premise that if one of the early moves causes a cutoff, then we may save on the effort of generating the rest of the moves.
- Check extensions. When the own king is in check only generate moves that can be made to avoid the check. [done]
Move Prioritization
- Move Ordering.
- Best Move (from hash table).
- Captures:
- by Most Valuable Victim (MVV)
- by Least Valuable Attacker (LVA).
- Pawn Promotions.
- History Heuristic.
- Killer Moves.
Move Storage
- FEN. [done]
- PGN. [done]
- Own format. [done]
Searching
- Alpha / Beta search. [done]
- Negamax search. [done]
- Aspiration Windows.
- MinMax search. [done]
- MultiPV (Single, non-PVS search).
- Multi Threading.
- Ponder.
- Principal Variation Search (PVS).
- Quiet Search (Quiescence Search). [done]
- End-Games.
- Common end-games (K vs KP, K vs KQ, K v KR, K v KBN).
Pruning
- Futility Pruning.
- Null Move Pruning.
- Late Move Pruning (LMP).
- Late Move Reductions (LMR).
Evaluations
- Standard Evaluations:
- Mate. [done]
- Stalemate. [done]
- Draw by 3-fold repetition.
- Draw by insufficient material. [done]
- 50 moves without a pawn move. [done]
- 75 moves without a capture or pawn move. [done]
- Material Values. [done]
- Tapered Evaluation - Different values at different stages of the game (beginning, middle-game, end-game). [done]
- Positional Knowledge.
- Piece Locations: [done]
- Good and Bad squares. [done]
- Relative to own pieces.
- Relative to opponent pieces.
- Threatened pieces.
- Piece Mobility. [done]
- Piece Occupancy. [done]
- Control of Center. [done]
- End-Games.
- Drawing end-games.
- End-games without Pawns.
- Bishops.
- On long diagonals.
- Bishop Pair. [done]
- In Open games.
- Knights.
- In Closed games.
- Pawns.
- Blocked.
- Passed. [done]
- Passed and escorted by a piece.
- Passed and escorted by king.
- Passed and free.
- Passed and unstoppable.
- Isolated pawns. [done]
- Pawn Storms. [done]
- King Safety.
- Castled. [done]
- Near a semi-open file.
- Near squares attacked by opponent.
- Pawn Shield. [done]
Speed / Strength
- Nodes Per Second (Search Speed). [done]
- Depth settings. [done]
- Perft. [done]
- Divide. [done]
Time-Controls
- Seconds per move. [done]
- Moves per time-frame.
- Bullet.
- Blitz.
- Rapid chess
Transposition Tables
- Transposition (hash) Tables. [done]
- Zorbrist. [done]
Protocols
- UCI Protocol
- Winboard
chess/programming/checklist.txt · Last modified: 2022/01/08 12:54 by peter