From Chessprogramming wiki
Revision as of 16:10, 31 August 2020 by GerdIsenberg (talk | contribs) (Created page with "'''Home * Engines * BBC''' '''BBC''', (Bit Board Chess)<br/> a didactic bitboard chess engine by Maksim Korzh aka Code Monkey King, written in C. BB...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Home * Engines * BBC

BBC, (Bit Board Chess)
a didactic bitboard chess engine by Maksim Korzh aka Code Monkey King, written in C. BBC is subject of a YouTube video tutorial started in summer 2020 [1], actually work in progress. The open source engine is further published on GitHub [2], and will be compliant to the UCI protocol. While the series offers a nice introduction in interactive chess engine programming and bitboard techniques, the advanced approach of Magic Bitboards to determine sliding piece attacks with all its lengthly initialization topics might be hard to understand and deterrent for the intended novice target group. The linewise approaches of First Rank Attacks to intruduce occupancy lookups, followed by Kindergarten Bitboards - as intermediate step towards magics bitboards - would be didactically more appropriate.

See also

Forum Posts

External Links



  1. Intro » Bitboards
  2. Creating comfortable conditions for development
  3. Generating pre-calculated PAWN ATTACK tables » Pawn Attacks (Bitboards)
  4. Generating pre-calculated KNIGHT ATTACK table » Knight Attacks
  5. Generating pre-calculated KING ATTACK tables » King Attacks
  6. Masking relevant bishop occupancy bits to form a key for MAGIC BITBOARDS » Magic Bitboards
  7. Masking relevant ROOK OCCUPANCY BITS to form a key for MAGIC BITBOARDS
  8. Generating SLIDER PIECES ATTACKS on the fly for MAGIC BITBOARD purposes » Sliding Piece Attacks
  9. Implementing BIT COUNT routine (Brian Kernighan's way) »Population Count - Brian Kernighan's way
  10. Getting least significant 1st BIT INDEX » Index of LS1B by Popcount
  11. Populating OCCUPANCY sets to multiply them later by MAGIC NUMBERS
  12. Generating relevant OCCUPANCY BIT COUNT lookup tables for sliding pieces
  13. Implementing pseudo RANDOM NUMBER generator using XORSHIFT32 algorithm
  14. Generating MAGIC NUMBER candidates
  15. Generating MAGIC NUMBERS via brute force trial and error method
  16. Initializing SLIDER PIECES attack tables using PLAIN MAGIC BITBOARDS
  17. Defining BITBOARDS, OCCUPANCIES and helper variables
  18. Printing CHESS BOARD position and game state variables
  19. Parsing FEN string to initialize BITBOARDS, OCUUPANCIES & board state
  20. Getting QUEEN ATTACKS by looking up bishop & rook attack tables
  21. Implementing routine to find out whether SQUARE IS ATTACKED
  22. Writing GENERATE MOVES function skeleton
  23. Generating QUIET PAWN moves
  24. Generating PAWN CAPTURE moves
  25. Generating CASTLING MOVES
  26. Generating SLIDER & LEAPER piece MOVES by attack tables lookup
  27. Binary formatting of MOVE ITEMS
  28. Encoding & decoding MOVE ITEMS


Up one Level