Skip to main content
Description: catan-spectator
---------------

A GUI for Mac and Windows for spectating and logging games of Settlers of Catan.

Other projects can read game logs and do useful things, i.e.

* semi-automated tournaments: draws, matchups, stats, tiebreakers computed from game logs.
* machine learning: game outcome prediction, AI development

Todos are listed below.

> Author: Ross Anderson ([rosshamish](https://github.com/rosshamish))

### Demo
![Demo](/doc/gifs/v0.1.3-demo.mov.gif)

### Usage

See http://rosshamish.github.io/catan-spectator

### Development

Clone, install dependencies:
```
$ git clone https://github.com/rosshamish/catan-spectator
$ cd catan-spectator
$ pip3 install -r requirements.txt
```

Basic usage:
```
$ python3 main.py
```

Full list of options:
```
$ python3 main.py --help
usage: main.py [-h] [--board BOARD] [--terrain TERRAIN] [--numbers NUMBERS]
[--ports PORTS] [--pieces PIECES] [--players PLAYERS]
[--pregame PREGAME] [--use_stdout]

log a game of catan

optional arguments:
-h, --help show this help message and exit
--board BOARD string with space-separated short-codes for terrain and
numbers, e.g. 'w w h b s o w w b ... 2 None 9 3 4 6 ...'
--terrain TERRAIN random|preset|empty|debug, default random
--numbers NUMBERS random|preset|empty|debug, default preset
--ports PORTS random|preset|empty|debug, default preset
--pieces PIECES random|preset|empty|debug, default preset
--players PLAYERS random|preset|empty|debug, default preset
--pregame PREGAME on|off, default oncatan-spectator
--use_stdout write to stdout
```

Make targets:
```
- `make relaunch`: launch (or relaunch) the GUI
- `make logs`: cat the python logs
- `make tail`: tail the python logs
- `make`: alias for relaunch && tailFor a particular board layout:
```

### File Format

<!-- remember to update this section in sync with "File Format" in github.com/rosshamish/catan-py/README.md -->

catan-spectator writes game logs in the `.catan` format described by package [`catanlog`](https://github.com/rosshamish/catanlog).

They look like this:

```
green rolls 6
blue buys settlement, builds at (1 NW)
orange buys city, builds at (1 SE)
red plays monopoly on ore
```

### Todos

Need to have
- [ ] views documented
- [x] piece placing should be cancellable (via undo)
- [x] all actions should be undoable
- [ ] ui+catanlog: save log file to custom location on End Game
- [ ] ui: city-shaped polygon for cities
- [ ] ui/ux improvements

Nice to have
- [ ] board: random number setup obeys red number rule
- [ ] ui+board+hexgrid: during piece placement, use little red x’s (at least in debug mode) on “killed spots”
- [ ] ui+game+player+states: dev cards, i.e. keep a count of how many dev cards a player has played and enable Play Dev Card buttons if num > 0
- [x] ui+game+port+hexgrid: port trading, disable buttons if the current player doesn’t have the port. 4:1 is always enabled.
- [x] ui+port+hexgrid: port trading, don't allow getting or giving more or less than defined by the port type (3:1, 2:1).
- [ ] ui+port: port trading, don’t allow n for 0 trades
- [ ] ui: large indicator off what the current player is (and what the order is)
- [x] ui: cancelling of roads/settlements/cities while placing
- [ ] ui: images, colors in UI buttons (eg dice for roll, )
- [attempted, might be worse] ui: tile images instead of colored hexagons
- [ ] ui: port images instead of colored triangles
- [ ] ui: piece images instead of colored polygons
- [x] ui: number images instead of text (or avoid contrast issues otherwise)
- [ ] ui+game+states+robber: steal dropdown has “nil” option always, for in case it goes on a person with no cards and no steal happens. Name it something obvious, don’t use an empty string.

### Attribution

Codebase originally forked from [fruitnuke/catan](https://github.com/fruitnuke/catan), a catan board generator

### License

GPLv3

Platform: UNKNOWN

Metadata

Release files for catan-spectator 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for catan-spectator 0.1.4
File Size Uploaded Provenance
catan-spectator-0.1.4.tar.gz 30.2 kB Without provenance Details

Release files / catan-spectator-0.1.4.tar.gz

Download URL catan-spectator-0.1.4.tar.gz
Size 30.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a43f362721606e7fa8481f8479d84778c854767c174c14621bc353b61d4e8b9a
BLAKE2b-256 checksum
How to use checksums
954cdf199c935a1a81ee63554c33b6bc8478694612f40c4ffb36f92df68d84f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for catan-spectator 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page