Run engine matches for a variety of games, relying on the engines themselves to validate unsupported games. Given this reliance on the engines, that means they have to be both trustworthy and well tested.
The Universal Game Interface protocol is a text based protocol used for communication with engines. A currently incomplete overview can be found here.
Cute Games is designed to save engine developers from having to implement a program to run engine matches for every game they might be interested in. As such, it may be missing features that a specifically designed program might provide. If such a program exists for the game of interest, it could be the better option.
- Cute Chess -- Works very well for playing chess and some chess variants.
- Cute Ataxx -- For Ataxx.
Cute Games will only work for games similar in nature to chess. Specifically, that means:
- Two player
- Sequential moves
Cute Games can handle games such as:
- chess
- checkers
- reversi
- go
- tic tac toe
Cute Games can not handle games such as:
- poker
- rock paper scissors
CuteGames directly supports a select few games and can provide additional features for them, such as move legality checks or using engine protocols from those games. First class games can still be played by engines using the UGI protocol. This includes playing UGI engines against those using a game's native protocol.
First class games:
- Ataxx with the UAI protocol
- Chess with the UCI protocol
CMake, a C++20 compiler, and the boost library are required.
git clone https://github.com/kz04px/cutegames
mkdir cutegames/build
cd cutegames/build
cmake ..
cmake --build .
Cute Games is released under the MIT license.
- doctest -- The fastest feature-rich C++11/14/17/20 single-header testing framework -- MIT License
- CLI11 -- CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.
- JSON -- JSON for Modern C++ -- MIT License
- Termcolor -- Termcolor is a header-only C++ library for printing colored messages to the terminal. Written just for fun with a help of the Force.
- Boost Process -- Boost.Process is a library to manage system processes -- BSL 1.0
- libataxx -- A C++ Ataxx library to handle move generation, move validation, and other aspects of the board game Ataxx
- libchess -- C++ chess library