Changes

Jump to: navigation, search

BBC

4,662 bytes added, 17:10, 31 August 2020
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..."
'''[[Main Page|Home]] * [[Engines]] * BBC'''

'''BBC''', (Bit Board Chess)<br/>
a didactic bitboard chess engine by [[Maksim Korzh]] aka Code Monkey King, written in [[C]]. BBC is subject of a [https://en.wikipedia.org/wiki/YouTube YouTube] [https://en.wikipedia.org/wiki/Tutorial video tutorial] started in summer 2020 <ref>[https://youtu.be/QUNP-UjujBM Bitboard CHESS ENGINE in C: intro]</ref>, actually work in progress.
The [[:Category:Open Source|open source engine]] is further published on [https://en.wikipedia.org/wiki/GitHub GitHub] <ref>[https://github.com/maksimKorzh/bbc GitHub - maksimKorzh/bbc: Bit Board Chess (BBC) - The easiest to understand bitboard chess engine by Code Monkey King]</ref>, and will be compliant to the [[UCI]] protocol.
While the series offers a nice introduction in interactive chess engine programming and [[Bitboards|bitboard]] techniques,
the advanced approach of [[Magic Bitboards]] to determine [[Sliding Piece Attacks|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=
* [[BMCP]]
* [[Vice]]

=Forum Posts=
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74917 Comparing 4 move generators: 0x88 vs 10x12 vs 10x12 + bitboards HYBRID vs Pure MAGIC BITBOARDS] by [[Maksim Korzh]], [[CCC]], August 28, 2020

=External Links=
== GitHub==
* [https://github.com/maksimKorzh/bbc GitHub - maksimKorzh/bbc: Bit Board Chess (BBC) - The easiest to understand bitboard chess engine by Code Monkey King]

==YouTube==
# [https://youtu.be/QUNP-UjujBM Intro] » [[Bitboards]]
# [https://youtu.be/o-ySJ2EBarY Creating comfortable conditions for development]
# [https://youtu.be/OTWG4dERdSc Generating pre-calculated PAWN ATTACK tables] » [[Pawn Attacks (Bitboards)]]
# [https://youtu.be/nZLuLn9JW0E Generating pre-calculated KNIGHT ATTACK table] » [[Knight Pattern#KnightAttacks|Knight Attacks]]
# [https://youtu.be/dWfwcfWg4XY Generating pre-calculated KING ATTACK tables] » [[King Pattern#KingAttacks|King Attacks]]
# [https://youtu.be/Obe1-u3S0Y4 Masking relevant bishop occupancy bits to form a key for MAGIC BITBOARDS] » [[Magic Bitboards]]
# [https://youtu.be/bL7LW3jntw0 Masking relevant ROOK OCCUPANCY BITS to form a key for MAGIC BITBOARDS]
# [https://youtu.be/XFiZ3tjt7K4 Generating SLIDER PIECES ATTACKS on the fly for MAGIC BITBOARD purposes] » [[Sliding Piece Attacks]]
# [https://youtu.be/0F_aeUik91A Implementing BIT COUNT routine (Brian Kernighan's way)] »[[Population Count#BrianKernighansway|Population Count - Brian Kernighan's way]]
# [https://youtu.be/JhLgV2P9sBg Getting least significant 1st BIT INDEX] » [[BitScan#Index of LS1B by Popcount|Index of LS1B by Popcount]]
# [https://youtu.be/nyk3usU95IY Populating OCCUPANCY sets to multiply them later by MAGIC NUMBERS]
# [https://youtu.be/gaXLyW-yMvg Generating relevant OCCUPANCY BIT COUNT lookup tables for sliding pieces]
# [https://youtu.be/JjFYmkUhLN4 Implementing pseudo RANDOM NUMBER generator using XORSHIFT32 algorithm]
# [https://youtu.be/KqWeOVyOoyU Generating MAGIC NUMBER candidates]
# [https://youtu.be/UnEu5GOiSEs Generating MAGIC NUMBERS via brute force trial and error method]
# [https://youtu.be/1lAM8ffBg0A Initializing SLIDER PIECES attack tables using PLAIN MAGIC BITBOARDS]
# [https://youtu.be/ZBBju42pKvw Defining BITBOARDS, OCCUPANCIES and helper variables]
# [https://youtu.be/iJ0VpXq90zY Printing CHESS BOARD position and game state variables]
# [https://youtu.be/IdFHFRiQtj8 Parsing FEN string to initialize BITBOARDS, OCUUPANCIES & board state]
# [https://youtu.be/KSs4KRQPOKE Getting QUEEN ATTACKS by looking up bishop & rook attack tables]
# [https://youtu.be/v9CEqjliv3E Implementing routine to find out whether SQUARE IS ATTACKED]
# [https://youtu.be/eRvCLaa-3Rk Writing GENERATE MOVES function skeleton]
# [https://youtu.be/62Hy1JEehqI Generating QUIET PAWN moves]
# [https://youtu.be/cezEoX8WpWs Generating PAWN CAPTURE moves]
# [https://youtu.be/TXvV2jVl7co Generating CASTLING MOVES]
# [https://youtu.be/clNvT1W93o4 Generating SLIDER & LEAPER piece MOVES by attack tables lookup]
# [https://youtu.be/ubX5lyIQoSs Binary formatting of MOVE ITEMS]
# [https://youtu.be/gyf3mr1LI7A Encoding & decoding MOVE ITEMS]

=References=
<references />
'''[[Engines|Up one Level]]'''
[[Category:Open Source]]
[[Category:UCI]]
[[Category:Linux]]
[[Category:Windows]]
[[Category:Acronym]]
[[Category:Didactic]]

Navigation menu