Skip to content

dirkm/cheapshot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cheapshot :: chess engine

Warning

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.

Build

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.

Specifics

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.

Acknowledgments

The excellent makefiles from lockless.

Bit Twiddling Hacks for inspiration for bitboard-arithmetic.

chessprogramming wiki

Todo

  1. UCI-interface
  2. storing the principal variation
  3. come up with an eval function
  4. 50 move-rule
  5. extend IO to read/write moves
  6. standard tests like Perft
  7. go through the standard techniques to speed up a chess-engine
  8. ...

Done

  1. basic rules
  2. incremental hash
  3. incremental material
  4. simple transposition table
  5. read moves in long algebraic notation
  6. io in fen-format
  7. minimax/alpha-beta
  8. tests

LICENSE

This program is released under the Boost Software License.

About

chess engine in C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published