Cheapshot is in early construction phase, and has been for some time.
It is meant to be a simple chess-engine and a playground for C++11-features. The engine is not playable yet.
"test/forced_mate" is usable as a brute force mate-detector at a given ply-depth. The output is a simple true/false.
boost (system-layout) is required.
calling "make" in the root-dir will build everything.
Cheapshot is developed against the latest gcc in C++11-mode (gcc 4.8 prerelease at the time of writing) on a 64 bit Linux.
clang is sadly not supported due to missing constexpr gcc-intrinsics.
gcc 4.7 binaries are 30% slower than gcc 4.6 and gcc 4.8, because of less inlining in the low-level functions.
Boards don't rotate in between moves. Pawn moves, promotions and castling are templatized with as parameter the side of the board.
Precomputed tables are mostly avoided, to make it a better compiler test-bed.
Features can be enabled at compile-time using a policy-class.
The excellent makefiles from lockless.
Bit Twiddling Hacks for inspiration for bitboard-arithmetic.
chessprogramming wiki
- UCI-interface
- storing the principal variation
- come up with an eval function
- 50 move-rule
- extend IO to read/write moves
- standard tests like Perft
- go through the standard techniques to speed up a chess-engine
- ...
- basic rules
- incremental hash
- incremental material
- simple transposition table
- read moves in long algebraic notation
- io in fen-format
- minimax/alpha-beta
- tests
This program is released under the Boost Software License.