Catan.jl - a Settlers of Catan game engine
A full Julia engine for playing the extremely popular board game Settlers of Catan with a mixture of human and custom scripted players. For examples of scripted players and how to apply more advanced ML/RL algorithms, check out the sister repo CatanLearning.jl.
How to run the game
To launch a new game, set up a configuration file with the desired player types, and any gameplay configuration.
For example,
# Changing any configs you want (defaults in ./DefaultConfiguration.toml)
PRINT_BOARD = true
# Setting up the types of players.
# One human (blue) against three scripted players of type `DefaultRobotPlayer`
[PlayerSettings]
[PlayerSettings.blue]
TYPE = "HumanPlayer"
[PlayerSettings.cyan]
TYPE = "DefaultRobotPlayer"
[PlayerSettings.green]
TYPE = "DefaultRobotPlayer"
[PlayerSettings.yellow]
TYPE = "DefaultRobotPlayer"
If this file is saved as Configuration.toml
, then we can run one game with the following script:
using Catan
configs = Catan.parse_configs("Configuration.toml")
board, winner = Catan.run(configs)