Skip to content
Jackal93 edited this page Apr 19, 2018 · 1 revision

Modules

This is an outline of the purpose of the various source code parts.

A3C

environment

The A3C agent implementation is meant to be independent of the task. We have an Environment base class that provides a common interface for interaction, of which a subclass implements the communication with Rogue using the Rogueinabox library.

evaluate

Provides the means to evaluate and visualize on a GUI the agent's policy.

model

Comprises the neural network architecture.

work

Implements an A3C thread interacting with the environment and the RMSprop optimizer.

options.py

Encompasses the program configuration parameters.

train.py

This is the program entry point: it instantiates, launch and control the worker threads.

Rogue

Includes the game source code and the Rogueinabox python library that interacts with it.

rogue5.4.4-ant-r1.1.4

Rogue source code.

rogueinabox

Python library that interacts with Rogue.

box.py

Implements the RogueBox class that presents a python interface to the game.

evaluator.py

Provides the means to evaluate a policy.

frame_info.py

Comprises the RogueFrameInfo class, a frame representation with convenient methods to access its information.

parser.py

Efficiently produces RogueFrameInfo instances from raw Rogue screens.

rewards.py

Presents various reward generators.

states.py

Consists of various state generators.

baseagent.py

Provides a base class for GUI agents, such that subclasses only need to select actions.

randomagent.py

Demonstrates an implementation of a GUI agent, performing random actions.

ui

Implements UI related functions.