This repository is no longer maintained since the environment was integrated into the original OpenSpiel repository: https://github.com/deepmind/open_spiel.
Slovenian Tarok is a variant of central European Tarot card games. It is essentially a three- or four-player, trick-taking, competitive game of skill with bidding. Computationally speaking, Tarok is moderately more complex than Bridge [1]. Detailed game rules are available here.
This repository provides a C++ game environment for the OpenSpiel framework and custom Python bindings for Game
and State
objects [2].
The easiest way to run Python scripts that use Tarok and OpenSpiel is via docker:
- Run
git clone https://github.com/semanticweights/tarok.git
andcd
into the repository - Run
docker run -v $(pwd)/tarok/python:/src -i --rm semanticweights/tarok:run-652e9b2 /src/play_game.py
Note that hash values after the run- part correspond to commits from the stable branch.
- Run
git clone --recurse-submodules https://github.com/semanticweights/tarok.git
andcd
into the repository - Ensure you have the following installed:
- a compiler that supports the C++17 standard (tested with Clang)
cmake
(version 3.13.4 or above)make
python3
(tested with 3.7.4)
- Create a new virtual environment and activate it
- Run
python3 -m pip install --upgrade pip setuptools
- Run
python3 -m pip install -r tarok/python/requirements-dev.txt
- Run
./tarok/install.sh
- Add Python modules to
PYTHONPATH
(see output from the previous step)
- Run the tests with
./build/test/tarok_tests
- Run the linter with
cpplint tarok/src/* tarok/test/*