diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..abf3332 --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# ChessArbiter +ChessArbiter is a library that allow you to play chess games in C++. It ensures that all the rules of classical chess are followed. + +# Features +- No external dependencies +- Simple/Minimal API +- FEN parsing/serializing +- Setup a position a play moves +- Perform various tests on a position: + - Material + - Players in check + - Players captures + - Castle + - Attacked squares + - Checkmate + - ... +- More features are coming soon! + +# How to setup ChessArbiter +ChessArbiter can be used as a shared library in your project. +You only need to include `ChessArbiter.hpp` and linking the .so file to your executable. + +# Example +Somewhere at the beginning of the file: + + #include "ChessArbiter.hpp" + +Start playing: + + ChessArbiter arbiter; + arbiter.Setup("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"); + // Now start playing! + if(!arbiter.Play("e2e4")){ + // Handle illegal moves + } + if(arbiter.IsCheckmate()){ + // Game ends + } + +See `ChessArbiter.hpp` for more informations on the API. + +# CMake Integration +By using the `add_subdirectory()` directive on this repository, you will be able to use the following cmake calls in your project: + + include_directories(${CHESSARBITER_INCLUDE_DIR}) + target_link_libraries(<YOUR_TARGET> chessarbiter) + |
