This project aims to provide various support to the development of the board game Cartolan - Trade Winds
It simulates large numbers of games beyond what could be expected from human playtesters, albeit with virtual players using simple heuristics (and in future deep Q-learning).
It also allows playtesting through virtual play over a network and the internet, through a browser or mobile device.
All the scripts are in the root folder, while assets like visuals are in subfolders.
The key file through which to run simulations is main_sim.py.
The key files for hosting a web app are web_app.py and cartolan_web/public_html/http_server.py.
See deployment for notes on how to deploy the project on a live system.
For simulation with stats and visuals, you will need the Matplotlib and Tkinter python packages. The first is available through pip, but the latter has to be installed independently
For serving the web application, you will need pygame and SimpleWebSocketServer, both available through pip.
Various aspects of the rules can be configured based on constants in game_config.py .
Automated tests have not been implemented yet. Testing can be done through comparing virtual play to the rules explained in the game manual.
Simulations of the game can be run using the Jupyter notebook from the root directory.
Internet play of the game will require an accessible server to have both the web_app.py and cartolan_web/public_html/http_server.py servers to be running. If this server has an IP address of x.y.z.w, then by default a desktop or mobile web browser can play the game by loading:
x.y.z.w:9000/index.html
But, at present, the IP address is hard coded into the files.
Python 3.8, tested on Python 3.6
If you'd like to contribute to this project then please contact Tom Wilkinson @ delwddrylliwr@gmail.com
Git and GitHub are used for versioning.
This project is licensed under the CC-BY-NC, Creative Commons Attribution Non-Commercial license.