Chess Engine in C++

When I was in High School I wrote a Chess Engine, teaching myself how to code along the way, and making extensive use of the excellent Chess Programming Wiki. Aside from learning C++, I developed a pretty complex Chess Engine using start of the art (for 2016) techniques, most of which are still used in top engines like Stockfish today. Aside from the basic Alpha-beta search, some fancy chess specific techniques I made us of are:

  1. Capture based move ordering
  2. The killer move hueristic
  3. Null move pruning
  4. Futility pruning
  5. Late move reductions
  6. Quiescence search
  7. Magic bitboard move generation
  8. Zobrist Hashing based transposition table
  9. Principal Variation Search

For more details, checkout the github.