Skip to content

GunshipPenguin/shallow-blue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shallow Blue

(Not Deep Blue)

A UCI Chess engine written in C++11.

Features:

Building

make

You can build with debugging symbols and no optimizations using:

make debug

If you have Mingw-w64 installed, you can cross compile for Windows on Linux with:

./build_windows.sh

Tests

Catch unit tests are located in the test directory.

To build and run the unit tests, use:

make test

Documentation

Shallow Blue's code is extensively documented with Doxygen. To generate HTML documentation use:

doxygen

Implemented non UCI Commands

These commands can be useful for debugging.

  • perft <depth>
    • Prints the perft value for each move on the current board to the specified depth
  • printboard
    • Pretty prints the current state of the game board
  • printmoves
    • Prints all legal moves for the currently active player

Future Improvements

  • General
    • Avoid draws by repetition / 50 move rule
    • Opening book support
    • Magic bitboards
    • Unmake move function
    • Opening book support
  • Evaluation
    • King safety
    • Pawn structure
  • Search
    • Switch search algorithm to Principal Variation Search
    • Use a capture-only move generator for quiescence search
  • UCI
    • Support more of the UCI protocol
      • Support timers (wtime / btime)
      • stop command
      • go infinite

License

MIT © Rhys Rustad-Elliott