User Tools

Site Tools


chess:programming:checklist

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki