Changes

Jump to: navigation, search

BBC

2,776 bytes added, 12:50, 26 September 2020
no edit summary
==YouTube==
# [https://youtu.be/QUNP-UjujBM Intro] » <span style="background-color: #ffffac;">[[Bitboards]]</span>
# [https://youtu.be/o-ySJ2EBarY Creating comfortable conditions for development]
# [https://youtu.be/OTWG4dERdSc Generating pre-calculated PAWN ATTACK tables] » <span style="background-color: #ffffac;">[[Pawn Attacks (Bitboards)]]</span># [https://youtu.be/nZLuLn9JW0E Generating pre-calculated KNIGHT ATTACK table] » <span style="background-color: #ffffac;">[[Knight Pattern#KnightAttacks|Knight Attacks]]</span># [https://youtu.be/dWfwcfWg4XY Generating pre-calculated KING ATTACK tables] » <span style="background-color: #ffffac;">[[King Pattern#KingAttacks|King Attacks]]</span># [https://youtu.be/Obe1-u3S0Y4 Masking relevant bishop occupancy bits to form a key for MAGIC BITBOARDS] » <span style="background-color: #ffffac;">[[Magic Bitboards]]</span>
# [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] » <span style="background-color: #ffffac;">[[Sliding Piece Attacks]]</span># [https://youtu.be/0F_aeUik91A Implementing BIT COUNT routine (Brian Kernighan's way)] » <span style="background-color: #ffffac;">[[Population Count#BrianKernighansway|Population Count - Brian Kernighan's way]]</span># [https://youtu.be/JhLgV2P9sBg Getting least significant 1st BIT INDEX] » <span style="background-color: #ffffac;">[[BitScan#Index of LS1B by Popcount|Index of LS1B by Popcount]]</span>
# [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] » <span style="background-color: #ffffac;">[[Pseudorandom Number Generator]]</span># [https://youtu.be/KqWeOVyOoyU Generating MAGIC NUMBER candidates] » <span style="background-color: #ffffac;">[[Looking for Magics]]</span>
# [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] » <span style="background-color: #ffffac;">[[Magic Bitboards#Plain|Plain Magic Bitboards]]</span># [https://youtu.be/ZBBju42pKvw Defining BITBOARDS, OCCUPANCIES and helper variables] » <span style="background-color: #ffffac;">[[Bitboard Board-Definition]]</span># [https://youtu.be/iJ0VpXq90zY Printing CHESS BOARD position and game state variables] » <span style="background-color: #ffffac;">[[Chess Position]]</span># [https://youtu.be/IdFHFRiQtj8 Parsing FEN string to initialize BITBOARDS, OCUUPANCIES & board state] » <span style="background-color: #ffffac;">[[Forsyth-Edwards Notation]]</span>
# [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] » <span style="background-color: #ffffac;">[[Square Attacked By]]</span># [https://youtu.be/eRvCLaa-3Rk Writing GENERATE MOVES function skeleton] » <span style="background-color: #ffffac;">[[Move Generation]]</span># [https://youtu.be/62Hy1JEehqI Generating QUIET PAWN moves] » <span style="background-color: #ffffac;">[[Pawn Pushes (Bitboards)]]</span># [https://youtu.be/cezEoX8WpWs Generating PAWN CAPTURE moves] » <span style="background-color: #ffffac;">[[Pawn Attacks (Bitboards)#PawnCaptures|Pawn Captures]]</span># [https://youtu.be/TXvV2jVl7co Generating CASTLING MOVES] » <span style="background-color: #ffffac;">[[Castling]]</span>
# [https://youtu.be/clNvT1W93o4 Generating SLIDER & LEAPER piece MOVES by attack tables lookup]
# [https://youtu.be/ubX5lyIQoSs Binary formatting of MOVE ITEMS] » <span style="background-color: #ffffac;">[[Encoding Moves]]</span>
# [https://youtu.be/gyf3mr1LI7A Encoding & decoding MOVE ITEMS]
# [https://youtu.be/AINYYiV-83I Implementing MOVE LIST + ADD MOVE, PRINT MOVE, PRINT MOVE LIST functions] » <span style="background-color: #ffffac;">[[Move List]]</span>
# [https://youtu.be/944aTQQnWAA Populating MOVE LIST with newly GENERATED MOVES]
# [https://youtu.be/CsUelozl0a8 Preserving & restoring BOARD STATE aka COPY/MAKE approach] » <span style="background-color: #ffffac;">[[Copy-Make]]</span># [https://youtu.be/coVPpTJN9iU Implementing MAKE MOVE function (moving pieces)] » <span style="background-color: #ffffac;">[[Make Move]]</span># [https://youtu.be/nkRrQnhRo80 Implementing MAKE MOVE function (handling captures)] » <span style="background-color: #ffffac;">[[Captures]]</span># [https://youtu.be/gnDyJImkfVo Implementing MAKE MOVE function (handling pawn promotions)] » <span style="background-color: #ffffac;">[[Promotions]]</span># [https://youtu.be/5h5Z3bx0EKc Implementing MAKE MOVE function (handling enpassant moves)] » <span style="background-color: #ffffac;">[[En passant]]</span># [https://youtu.be/J-k2p1g6VTQ Implementing MAKE MOVE function (handling double pawn pushes)] » <span style="background-color: #ffffac;">[[Pawn Push#DoublePush|Double Pawn Push]]</span># [https://youtu.be/pHohRpH30a0 Implementing MAKE MOVE function (handling castling moves)] » <span style="background-color: #ffffac;">[[Castling]]</span># [https://youtu.be/zOWPZ4fuLGg Implementing MAKE MOVE function (updating castling rights)] » <span style="background-color: #ffffac;">[[Castling Rights]]</span># [https://youtu.be/ZBotXGrgbdg Implementing MAKE MOVE function (updating occupancy bitboards)] » <span style="background-color: #ffffac;">[[Occupancy]]</span># [https://youtu.be/sg4AMsXYuk4 Implementing MAKE MOVE function (checking whether the king is in check)] » <span style="background-color: #ffffac;">[[Check]]</span>
# [https://youtu.be/bK_dg_gMW6s Writing a cross-platform function for GETTING TIME IN MILLISECONDS]
# [https://youtu.be/o0xCJDhbSUM Writing PERFT DRIVER function] » <span style="background-color: #ffffac;">[[Perft]]</span>
# [https://youtu.be/p2VuC0xTPoc Writing PERFT TEST function]
# [https://youtu.be/1gOYB9HelXk Connecting to the GUI (parse move string)] » <span style="background-color: #ffffac;">[[GUI]], [[UCI]]</span>
# [https://youtu.be/giSqiH6aa_o Connecting to the GUI (parse "position" command)]
# [https://youtu.be/lb46nX6gSBw Connecting to the GUI (parse "go" command)]
# [https://youtu.be/rW2jzTA4kW4 Connecting to the GUI (main loop) + BONUS (TSCP vs BBC blitz game)] » <span style="background-color: #ffffac;">[[TSCP]]</span># [https://youtu.be/CMshozGbBdw Implementing RUDIMENTARY EVALUATION (material score)] » <span style="background-color: #ffffac;">[[Evaluation]], [[Material]]</span>
# [https://youtu.be/E2JzRNI1ODI Implementing RUDIMENTARY EVALUATION (positional piece scores)]
# [https://youtu.be/b8OcJM3VeaU Writing NEGAMAX ALPHA BETA skeleton] » <span style="background-color: #ffffac;">[[Negamax]], [[Alpha-Beta]]</span># [https://youtu.be/lAAdjCkWd9s Detecting CHECKMATE and STALEMATE] » <span style="background-color: #ffffac;">[[Checkmate]], [[Stalemate]]</span># [https://youtu.be/WzEhVjdNByg Implementing QUIESCENCE SEARCH] » <span style="background-color: #ffffac;">[[Quiescence Search]]</span># [https://youtu.be/NMNBWxinpPY Defining MVV LVA (Most Valuable Victim - Least Valuable Attacker) table] » <span style="background-color: #ffffac;">[[MVV-LVA|MVV/LVA]]</span># [https://youtu.be/VeJnLN7jFm4 Writing SCORE MOVE function] » <span style="background-color: #ffffac;">[[Move Ordering]]</span>
# [https://youtu.be/3-9tzzmtQQ0 Writing SORT MOVES function]
# [https://youtu.be/DVSp_31iTBU Applying MOVE ORDERING to sort captures] » <span style="background-color: #ffffac;">[[Captures]]</span># [https://youtu.be/MA6d1hZ1YBE Sorting KILLER & HISTORY moves] » <span style="background-color: #ffffac;">[[Killer Heuristic]], [[History Heuristic]]</span># [https://youtu.be/LOR-dkAkUyM Collecting PV (Principle Variation) from the search] » <span style="background-color: #ffffac;">[[Principal Variation]]</span># [https://youtu.be/yVyQSUYts0A Implementing ITERATIVE DEEPENING] » <span style="background-color: #ffffac;">[[Iterative Deepening]]</span>
# [https://youtu.be/heJUljl_zNE Sorting PV moves + some BONUS TALK at the end]
# [https://youtu.be/Gs4Zk6aihyQ Implementing PVS (Principle Variation Search)] » <span style="background-color: #ffffac;">[[Principal Variation Search]]</span># [https://youtu.be/OLT0bU0SIeg Applying LMR (Late Move Reduction)] » <span style="background-color: #ffffac;">[[Late Move Reductions]]</span># [https://youtu.be/n6xAzopULxU Applying NULL MOVE PRUNING] » <span style="background-color: #ffffac;">[[Null Move Pruning]]</span># [https://youtu.be/1LmdOHshYkI Adjusting ASPIRATION WINDOW during iterative deepening] » <span style="background-color: #ffffac;">[[Aspiration Windows]]</span>
# [https://youtu.be/azEmgbdiecc BUG ALERT!!! Fixing PVS duplication bug]
# [https://youtu.be/t48NYINOekw Handling TIME CONTROLS (forked from VICE by BluefeverSoftware)] » <span style="background-color: #ffffac;">[[Vice]]</span># [https://youtu.be/W7dah-dat8Q Zobrist HASHING (initialize random keys)] » <span style="background-color: #ffffac;">[[Zobrist Hashing]]</span>
# [https://youtu.be/sV2C7hx-gOE Zobrist HASHING (generate hash key)]
# [https://youtu.be/5EMLgIFv5Qg Zobrist HASHING (hash keys incremental updates)] » <span style="background-color: #ffffac;">[[Incremental Updates]]# [https://youtu.be/fEHjpzrcRxk Implementing HASH TABLE aka transposition table (define & initialize)] » <span style="background-color: #ffffac;">[[Transposition Table]] </span> <ref>[http://web.archive.org/web/20070809015843/www.seanet.com/%7Ebrucemo/topics/hashing.htm The Main Transposition Table] from [[Bruce Moreland|Bruce Moreland's]] [http://web.archive.org/web/20070607231311/www.brucemo.com/compchess/programming/index.htm Programming Topics]</ref>
# [https://youtu.be/NcboP08y_JQ Implementing HASH TABLE aka transposition table (read/write hash entry)]
# [https://youtu.be/HNtAt9RMJVs Implementing HASH TABLE aka transposition table (connecting to search)]
# [https://youtu.be/4SXKBTGUkjk BUG ALERT! Fixing lack of enpassant & side hashing on null move]
# [https://youtu.be/g1b_rT9VqAw More search BUG FIXES &CLEANUPS]
# [https://youtu.be/XfeuxubYlT0 Handling MATING SCORES in HASH TABLE aka transposition table] » <span style="background-color: #ffffac;">[[Score#MateScores|Mate Scores]]</span>
# [https://youtu.be/WcoOTg7Aq4E Sending MATING SCORES to GUI + some cleanups & adjustments]
# [https://youtu.be/QhFtquEeffA Detecting THREE FOLD REPETITIONS] » <span style="background-color: #ffffac;">[[Repetitions]]</span>
# [https://youtu.be/F8ueIueVsHI Final (hopefully!) SEARCH BUG FIXES]
# [https://youtu.be/Yqpm6Ad4scI Improving EVALUATION (setting file & rank masks)] » <span style="background-color: #ffffac;">[[Evaluation]], [[Pawn Pattern and Properties]]</span># [https://youtu.be/iwBkAEC4KSs Improving EVALUATION (initializing isolated & passed pawn masks)] » <span style="background-color: #ffffac;">[[Isolated Pawns (Bitboards)]], [[Passed Pawns (Bitboards)]]</span>
# [https://youtu.be/CgvZMsJImJg Improving EVALUATION (double & isolated penalties, passed pawns bonus)]
# [https://youtu.be/Bp4F_321j4I Improving EVALUATION (open & semi open file scoring)] » <span style="background-color: #ffffac;">[[Pawns and Files (Bitboards)]], [[Open File]]</span># [https://youtu.be/iq2lxyjWZvA Improving EVALUATION (mobility and king safety)] » <span style="background-color: #ffffac;">[[Mobility]], [[King Safety]]</span>
# [https://youtu.be/1SgnTKzWuss BBC 1.0 - RELEASE]

Navigation menu