# profdcallegari/geogolf architecture

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

- Interactive diagram: https://gitdiagram.com/profdcallegari/geogolf
- Repository: https://github.com/profdcallegari/geogolf

## Overview

GeoGolf is a local multiplayer geography game: players take turns choosing a shot direction and distance to reach a randomly selected landmark on an interactive 3D globe. The README also documents difficulty-based starting distances and a 50 km win radius. The repository contains only README.md and index.html, with no source excerpts, so component paths point to the sole apparent app file and relationships below reflect documented behavior rather than inspected implementation.

Main entry points: [`index.html`](https://github.com/profdcallegari/geogolf/blob/main/index.html) (Match setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Match setup"]
  node_match["Match setup<br/>[index.html]"]
  node_difficulty["Difficulty levels<br/>[index.html]"]
end

subgraph group_world["Game world"]
  node_destination["Random landmark<br/>[index.html]"]
  node_globe["3D globe<br/>[index.html]"]
end

subgraph group_play["Turn play"]
  node_shot_controls["Shot controls<br/>[index.html]"]
  node_direction["Direction selector<br/>[index.html]"]
  node_power["Distance slider<br/>[index.html]"]
  node_win_rule["Win condition<br/>[index.html]"]
end

node_players(("Players"))

node_players -->|"start match"| node_match
node_match -->|"sets starting distance"| node_difficulty
node_match -->|"selects target"| node_destination
node_destination -->|"appears on"| node_globe
node_players -->|"take turns"| node_shot_controls
node_shot_controls -->|"choose angle"| node_direction
node_shot_controls -->|"choose distance"| node_power
node_players -->|"race to target"| node_win_rule
node_destination -->|"defines 50 km radius"| node_win_rule

click node_match "https://github.com/profdcallegari/geogolf/blob/main/index.html"
click node_difficulty "https://github.com/profdcallegari/geogolf/blob/main/index.html"
click node_destination "https://github.com/profdcallegari/geogolf/blob/main/index.html"
click node_globe "https://github.com/profdcallegari/geogolf/blob/main/index.html"
click node_shot_controls "https://github.com/profdcallegari/geogolf/blob/main/index.html"
click node_direction "https://github.com/profdcallegari/geogolf/blob/main/index.html"
click node_power "https://github.com/profdcallegari/geogolf/blob/main/index.html"
click node_win_rule "https://github.com/profdcallegari/geogolf/blob/main/index.html"

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_match,node_difficulty toneBlue
class node_destination,node_globe toneAmber
class node_shot_controls,node_direction,node_power,node_win_rule toneMint
class node_players toneIndigo
```

## Components

### Match setup

- [Match setup](https://github.com/profdcallegari/geogolf/blob/main/index.html): `index.html`
- [Difficulty levels](https://github.com/profdcallegari/geogolf/blob/main/index.html): `index.html`

### Game world

- [Random landmark](https://github.com/profdcallegari/geogolf/blob/main/index.html): `index.html`
- [3D globe](https://github.com/profdcallegari/geogolf/blob/main/index.html): `index.html`

### Turn play

- [Shot controls](https://github.com/profdcallegari/geogolf/blob/main/index.html): `index.html`
- [Direction selector](https://github.com/profdcallegari/geogolf/blob/main/index.html): `index.html`
- [Distance slider](https://github.com/profdcallegari/geogolf/blob/main/index.html): `index.html`
- [Win condition](https://github.com/profdcallegari/geogolf/blob/main/index.html): `index.html`

### Other components

- **Players**

## Connections

- Players → Match setup: start match (evidence: `README.md`)
- Match setup → Difficulty levels: sets starting distance (evidence: `README.md`)
- Match setup → Random landmark: selects target (evidence: `README.md`)
- Random landmark → 3D globe: appears on (evidence: `README.md`)
- Players → Shot controls: take turns (evidence: `README.md`)
- Shot controls → Direction selector: choose angle (evidence: `README.md`)
- Shot controls → Distance slider: choose distance (evidence: `README.md`)
- Players → Win condition: race to target (evidence: `README.md`)
- Random landmark → Win condition: defines 50 km radius (evidence: `README.md`)
