A scorekeeping program for the board game Carcassonne

George C. Privon 744e737a18 bugfix for scoreprobbytype to properly handle trade token scores 7 vuotta sitten
analysis 744e737a18 bugfix for scoreprobbytype to properly handle trade token scores 7 vuotta sitten
utilities b1642ffdf5 new utilities directory. script to merge multiple gameIDs into a single gameID 7 vuotta sitten
.gitignore fc1b9656aa start extracting parameters to a configuration file 7 vuotta sitten
CHANGELOG.md 744e737a18 bugfix for scoreprobbytype to properly handle trade token scores 7 vuotta sitten
CarcassonneScore.conf.example fc1b9656aa start extracting parameters to a configuration file 7 vuotta sitten
CarcassonneScore.py 0e1b91f18d 0.4.0 release 7 vuotta sitten
LICENSE 7f294aa55a GPL3 license 8 vuotta sitten
README.md 0e1b91f18d 0.4.0 release 7 vuotta sitten
cgame.py ee64e75461 add trade token scoring. partially addresses #1 7 vuotta sitten
manage_database.py 0e0df00cca implement config file. fixes #9 7 vuotta sitten

README.md

Carcassonne Score keeping

Score keeping software for Carcassonne to facilitate statistical analysis of games.

Requirements

  • python 3 (tested under python 3.6.x)
  • numpy
  • matplotlib (for analysis scripts)

Usage

Before your first game you will need to initialize the sqlite database:

$ python manage_database.py --init

Score keeping

Assuming the database has been initialized, you can run a game with:

$ python CarcassonneScore.py

This launches the interactive shell. Press ? for a list of commands.

Database Maintenance

To update the database (add new players toggle availability of expansions), use the manage_database.py command. For example, to add a new player:

$ python manage_database.py -n NEW PLAYER

Use python manage_database.py -h to see the full list of options.

Analysis

Some jupyter notebooks with sample analysis and a sample sqlite database containing one game are available in the analysis/ directory.

Miscellaneous Utilities

The utilities/ directory contains scripts which may be useful for correcting issues, but these should not be needed for normal operations.