User Tools

Site Tools


chess:programming

This is an old revision of the document!


Chess - Programming

Introduction

Checklist


Alpha-Beta Pruning

Aspiration Search

BCH Hashing

BitBoards

Bit Operations

Check Extensions

de Bruijn Sequence

Divide

ELO Rating

Evaluation

Evaluation Hash Table

Expectimax Search

FEN (Forsyth-Edwards Notation)

Futility Pruning

Game Phases

Hash Functions

History Heuristic

Huffman

Iterative Deepening

Killer Move

Late Move Reduction

Lazy Evaluation

LSB (Least Significant Bit)

Magic BitBoards

Material Hash Table

MSB (Most Significant Bit)

Minimax Algorithm

Move Generation

Move History

Move Ordering

Null Move Pruning

Opening Book

Pawn Hash Table

Perft

Portable Game Notation

Ponder

Rating

Razoring

PRNG (Pseudo Random Number Generator)

Search

Time Controls

Transposition Table

Winboard

Zobrist Hashing


Game -> Engine -> Timer -> Board -> Pieces
  |        |        |        |        |
  |        v        |        |        v
  |     User input  |        |      Define the pieces 
  |     MinMax      |        |      What moves a piece can make
  |       AI        |        |      Value of a piece
  |       UCI       v        |
  v            Time Controls |
User input        Threads    |
                             v
                        The board grid
                        Determine available moves
                        Move chess pieces
                        Remove chess pieces
                        Promote pieces
                        Value of board


Game

  • Runs overall game.

Engine

  • Takes user input.
  • UCI.
  • MinMax.
  • AI.

Timer

  • Time controls.

Board

  • The board grid.
  • Determine available moves.
  • Move chess pieces.
  • Remove chess pieces.
  • Promote pieces.

Pieces

  • The actual pieces.
  • The piece movements.

References

chess/programming.1641496720.txt.gz · Last modified: 2022/01/06 19:18 by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki