Giter VIP home page Giter VIP logo

cutegames's Introduction

Cute Games

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.


UGI Protocol

The Universal Game Interface protocol is a text based protocol used for communication with engines. A currently incomplete overview can be found here.


Why should I use this?

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.

Some alternatives:


Limitations

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

First class support

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

Build

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 .

License

Cute Games is released under the MIT license.


Thanks

  • 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

cutegames's People

Contributors

kz04px avatar

Stargazers

 avatar Fabian Fichter avatar

Watchers

James Cloos avatar  avatar  avatar Protej avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.