A system to play the Ascension: Chronicle of the Godslayer board game in an automated fashion for the purposes of game-theoretic analysis of various strategies.
Python
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
notes
src
.gitignore
LICENSE
README.md
autotest.py
final_project_writeup.pdf
main.py
requirements.txt
results.txt

README.md

ascension-bot

A system to play the Ascension: Chronicle of the Godslayer board game in an automated fashion for the purposes of game-theoretic analysis of various strategies.

Repository Structure

main.py This is the main program. Modify this to plug in which strategies to use for a given run.

scripts/ scripts for general usage.

src/ card_decoder/ - Handles the actual effects of the game.

  input/ - Text files that contain the encoded card data
  cards.py - Definitions of classes used for card stuff
  decoder.py - Entry point into this module. See the top of the file for
    how to use it.
  files.py - Utilities for reading the input
  test_decoder.py - Unit tests. Run py.test from the card_decoder directory.

strategies/ - Where the AI lives
  strategy.py - Basic interface for defining a strategy
  basic_strategy.py - Very basic strategy for testing.

board.py - Entry point for the game. Creates player objects and handles
  most of the resources.

deck.py - Handles drawing/shuffling from a list of cards.

moves.py - How the board is generally mutated. This happens with specific
  move types, such as "acquire", "play", or "defeat" from the AI.

player.py - An object that has honor, runes remaining, a deck, etc.

Usage

Modify main.py to use the strategies that you want, then run

./main.py