Skip to content

♠️ Slovenian Tarok card game environment for the OpenSpiel framework.

License

Notifications You must be signed in to change notification settings

semanticweights/tarok

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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