Metadata-Version: 2.3
Name: snowdrop-tangled-game-engine
Version: 1.0.4
Summary: A package for the Tangled game engine and support classes.
License: MIT
Author: Geordie Rose
Author-email: greatblueheron@users.noreply.github.com
Requires-Python: >=3.11,<3.14
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: pydantic (>=2.0.0)
Requires-Dist: python-dateutil (>=2.5.3)
Requires-Dist: requests (>=2.31.0)
Requires-Dist: typing-extensions (>=4.7.1)
Requires-Dist: urllib3 (>=2.5.0)
Project-URL: Bug Tracker, https://github.com/snowdropquantum/snowdrop-tangled-game-package/issues
Project-URL: Documentation, https://github.com/snowdropquantum/snowdrop-tangled-game-package
Project-URL: Homepage, https://github.com/snowdropquantum/snowdrop-tangled-game-package
Project-URL: Repository, https://github.com/snowdropquantum/snowdrop-tangled-game-package
Description-Content-Type: text/markdown

# snowdrop-tangled-game-package
This repo contains base classes for the Tangled game and agents. It is also where the
game graphs I use repeatedly are stored. While Tangled can be played on any connected
graph, I selected some specific graphs to demonstrate certain aspects of the game. The game
graphs exposed on the tangled-game.com website are a subset of the graphs here that I analyzed
for the [X-Prize Phase 1 Submission document](https://fqodzpifyovgmqjlluin.supabase.co/storage/v1/object/public/pdfs/XPRIZE_Phase_I_Submission_Snowdrop.pdf).

## Game Graphs
The `game_graph_ground_truth.py` file contains a set of game graphs and game parameters for those
graphs. The numbering on these is historical and doesn't make much sense, but I got used to it. 
To define a game graph, define the graph itself in the `GRAPH_DATABASE` dict, the vertex ownership 
choice in `VERTEX_OWNERSHIP`, the draw boundary for your graph in `EPSILON_VALUES`, and the anneal time 
for the quantum hardware in `ANNEAL_TIMES`. `ALLOWED_GRAPHS` is a filter to return only a subset of 
all the graphs. The current filter only returns the graphs in the X-Prize submission.

## Game Base Classes
Most of the other stuff here are base classes that you will subclass to build game playing agents and
adjudicators in the snowdrop-tangled-agents and snowdrop-adjudicators repos respectively. In those repos
I'll describe how this works. The two most important base classes are the `Game` class in game.py and the
`GameAgentBase` class in `base_agent.py`. 

