/tarok

:spades: Slovenian Tarok card game environment for the OpenSpiel framework.

Primary LanguageC++MIT LicenseMIT

Slovenian Tarok Card Game

build info docker hub license

Tarok trull cards

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].

Running in Docker

The easiest way to run Python scripts that use Tarok and OpenSpiel is via docker:

  1. Run git clone https://github.com/semanticweights/tarok.git and cd into the repository
  2. 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.

Local Development

  1. Run git clone --recurse-submodules https://github.com/semanticweights/tarok.git and cd into the repository
  2. 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)
  3. Create a new virtual environment and activate it
  4. Run python3 -m pip install --upgrade pip setuptools
  5. Run python3 -m pip install -r tarok/python/requirements-dev.txt
  6. Run ./tarok/install.sh
  7. Add Python modules to PYTHONPATH (see output from the previous step)

Running the Tests and Linter

  • Run the tests with ./build/test/tarok_tests
  • Run the linter with cpplint tarok/src/* tarok/test/*

References