Difference between revisions of "BBC"

From Chessprogramming wiki
Jump to: navigation, search
Line 48: Line 48:
 
# [https://youtu.be/ubX5lyIQoSs Binary formatting of MOVE ITEMS]
 
# [https://youtu.be/ubX5lyIQoSs Binary formatting of MOVE ITEMS]
 
# [https://youtu.be/gyf3mr1LI7A Encoding & decoding MOVE ITEMS]
 
# [https://youtu.be/gyf3mr1LI7A Encoding & decoding MOVE ITEMS]
 +
# [https://youtu.be/AINYYiV-83I Implementing MOVE LIST + ADD MOVE, PRINT MOVE, PRINT MOVE LIST functions]
 +
# [https://youtu.be/944aTQQnWAA Populating MOVE LIST with newly GENERATED MOVES]
  
 
=References=  
 
=References=  

Revision as of 16:07, 2 September 2020

Home * Engines * BBC

BBC, (Bit Board Chess)
a didactic bitboard chess engine by Maksim Korzh alias 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 lengthy initialization topics might be hard to understand and deterrent for the intended novice target group. The linewise approaches of First Rank Attacks to introduce occupancy lookups, followed by Kindergarten Bitboards - as intermediate step towards magics bitboards - seem didactically more appropriate.

See also

Forum Posts

External Links

GitHub

YouTube

  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 » Pseudorandom Number Generator
  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
  29. Implementing MOVE LIST + ADD MOVE, PRINT MOVE, PRINT MOVE LIST functions
  30. Populating MOVE LIST with newly GENERATED MOVES

References

Up one Level