# ananyo-sen-b2530066/treasurehunt-rl architecture

> Architecture diagram of the GitHub repository ananyo-sen-b2530066/treasurehunt-rl, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ananyo-sen-b2530066/treasurehunt-rl
- Repository: https://github.com/ananyo-sen-b2530066/treasurehunt-rl

## Overview

This repository is a treasure-hunt reinforcement-learning project: users can play a trap-filled grid world manually or train a DQN agent in it, then inspect training metrics and plots. The environment owns gameplay and observations; the training loop coordinates environment steps, agent updates, and log output. The README also describes multiple difficulty maps, limited visibility, lifelines, dynamic traps, and evaluation. Source excerpts establish the main training and manual-play calls; relationships for unsampled details are omitted.

Main entry points: [`training/train_dqn.py`](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/training/train_dqn.py) (DQN training), [`manual_play.py`](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/manual_play.py) (Manual play), [`analysis/logs`](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/tree/main/analysis/logs) (Training logs), [`analysis/evaluation.py`](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/analysis/evaluation.py) (Evaluation plots)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_game["Game environment"]
  node_manual["Manual play<br/>[manual_play.py]"]
  node_environment["Treasure environment<br/>[treasure_env.py]"]
  node_maps["Difficulty maps"]
  node_assets["Visual assets<br/>[asset_loader.py]"]
end

subgraph group_agents["RL agents"]
  node_base_agent["Base agent<br/>[base_agent.py]"]
  node_dqn["DQN agent<br/>[dqn_agent.py]"]
end

subgraph group_training["Training workflow"]
  node_trainer["DQN training<br/>[train_dqn.py]"]
end

subgraph group_analysis["Evaluation"]
  node_logs["Training logs"]
  node_evaluation["Evaluation plots<br/>[evaluation.py]"]
  node_plots["Plot outputs"]
end

node_player(("Player"))

node_player -->|"plays through"| node_manual
node_manual -->|"steps and renders"| node_environment
node_trainer -->|"runs episodes"| node_environment
node_trainer -->|"selects and trains"| node_dqn
node_trainer -->|"writes metrics"| node_logs
node_logs -->|"provides metrics"| node_evaluation
node_evaluation -->|"saves plots"| node_plots

click node_manual "https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/manual_play.py"
click node_environment "https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/env/treasure_env.py"
click node_maps "https://github.com/ananyo-sen-b2530066/treasurehunt-rl/tree/main/env/map_layouts"
click node_assets "https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/env/asset_loader.py"
click node_base_agent "https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/agents/base_agent.py"
click node_dqn "https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/agents/dqn_agent.py"
click node_trainer "https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/training/train_dqn.py"
click node_logs "https://github.com/ananyo-sen-b2530066/treasurehunt-rl/tree/main/analysis/logs"
click node_evaluation "https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/analysis/evaluation.py"
click node_plots "https://github.com/ananyo-sen-b2530066/treasurehunt-rl/tree/main/analysis/plots"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_manual,node_environment,node_maps,node_assets toneBlue
class node_base_agent,node_dqn toneAmber
class node_trainer toneMint
class node_logs,node_evaluation,node_plots toneRose
class node_player toneIndigo
```

## Components

### Game environment

- [Manual play](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/manual_play.py): `manual_play.py`
- [Treasure environment](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/env/treasure_env.py): `env/treasure_env.py`
- [Difficulty maps](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/tree/main/env/map_layouts): `env/map_layouts`
- [Visual assets](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/env/asset_loader.py): `env/asset_loader.py`

### RL agents

- [Base agent](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/agents/base_agent.py): `agents/base_agent.py`
- [DQN agent](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/agents/dqn_agent.py): `agents/dqn_agent.py`

### Training workflow

- [DQN training](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/training/train_dqn.py): `training/train_dqn.py`

### Evaluation

- [Training logs](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/tree/main/analysis/logs): `analysis/logs`
- [Evaluation plots](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/blob/main/analysis/evaluation.py): `analysis/evaluation.py`
- [Plot outputs](https://github.com/ananyo-sen-b2530066/treasurehunt-rl/tree/main/analysis/plots): `analysis/plots`

### Other components

- **Player**

## Connections

- Player → Manual play: plays through (evidence: `README.md`)
- Manual play → Treasure environment: steps and renders (evidence: `manual_play.py`)
- DQN training → Treasure environment: runs episodes (evidence: `training/train_dqn.py`)
- DQN training → DQN agent: selects and trains (evidence: `training/train_dqn.py`)
- DQN training → Training logs: writes metrics (evidence: `training/train_dqn.py`)
- Training logs → Evaluation plots: provides metrics (evidence: `analysis/evaluation.py`)
- Evaluation plots → Plot outputs: saves plots (evidence: `analysis/evaluation.py`)
