# joaorizzo0112/gamut architecture

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

- Interactive diagram: https://gitdiagram.com/joaorizzo0112/gamut
- Repository: https://github.com/joaorizzo0112/gamut

## Overview

Gamut é um jogo web de percepção de cores e memória: a pessoa escolhe um modo, observa ou interpreta cores, faz palpites HSB e recebe pontuação e resultado. O README documenta quatro modos, ajustes acessíveis por teclado e histórico local das últimas dez partidas. O comportamento está concentrado em `script.js`; `index.html` e `style.css` compõem a interface. Os trechos de código são parciais, então o grafo omite ligações internas que não podem ser confirmadas.

Main entry points: [`script.js`](https://github.com/joaorizzo0112/gamut/blob/main/script.js) (Controle de partidas), [`index.html`](https://github.com/joaorizzo0112/gamut/blob/main/index.html) (Interface do jogo)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Interface"]
  node_view["Interface do jogo<br/>[index.html]"]
  node_styles["Estilos responsivos<br/>[style.css]"]
end

subgraph group_gameplay["Fluxo de jogo"]
  node_controller["Controle de partidas<br/>[script.js]"]
  node_modes["Modos e rodadas<br/>[script.js]"]
  node_memory["Memorização e palpite<br/>[script.js]"]
  node_inverse["Desafio inverso<br/>[script.js]"]
end

subgraph group_results["Resultados e histórico"]
  node_scoring["Pontuação e revisão<br/>[script.js]"]
  node_history["Histórico local<br/>[script.js]"]
  node_localstorage[("localStorage")]
end

node_player(("Jogador"))

node_player -->|"interage"| node_view
node_view -->|"aciona jogo"| node_controller
node_controller -->|"inicia modo"| node_modes
node_controller -->|"exibe rodada"| node_memory
node_controller -->|"exibe rodada"| node_inverse
node_memory -->|"envia palpite"| node_scoring
node_inverse -->|"envia escolha"| node_scoring
node_controller -->|"encerra partida"| node_scoring
node_controller -->|"consulta e salva"| node_history
node_history -->|"lê e grava"| node_localstorage

click node_view "https://github.com/joaorizzo0112/gamut/blob/main/index.html"
click node_styles "https://github.com/joaorizzo0112/gamut/blob/main/style.css"
click node_controller "https://github.com/joaorizzo0112/gamut/blob/main/script.js"
click node_modes "https://github.com/joaorizzo0112/gamut/blob/main/script.js"
click node_memory "https://github.com/joaorizzo0112/gamut/blob/main/script.js"
click node_inverse "https://github.com/joaorizzo0112/gamut/blob/main/script.js"
click node_scoring "https://github.com/joaorizzo0112/gamut/blob/main/script.js"
click node_history "https://github.com/joaorizzo0112/gamut/blob/main/script.js"

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_view,node_styles toneBlue
class node_controller,node_modes,node_memory,node_inverse toneAmber
class node_scoring,node_history,node_localstorage toneMint
class node_player toneIndigo
```

## Components

### Interface

- [Interface do jogo](https://github.com/joaorizzo0112/gamut/blob/main/index.html): `index.html`
- [Estilos responsivos](https://github.com/joaorizzo0112/gamut/blob/main/style.css): `style.css`

### Fluxo de jogo

- [Controle de partidas](https://github.com/joaorizzo0112/gamut/blob/main/script.js): `script.js`
- [Modos e rodadas](https://github.com/joaorizzo0112/gamut/blob/main/script.js): `script.js`
- [Memorização e palpite](https://github.com/joaorizzo0112/gamut/blob/main/script.js): `script.js`
- [Desafio inverso](https://github.com/joaorizzo0112/gamut/blob/main/script.js): `script.js`

### Resultados e histórico

- [Pontuação e revisão](https://github.com/joaorizzo0112/gamut/blob/main/script.js): `script.js`
- [Histórico local](https://github.com/joaorizzo0112/gamut/blob/main/script.js): `script.js`
- **localStorage**

### Other components

- **Jogador**

## Connections

- Jogador → Interface do jogo: interage
- Interface do jogo → Controle de partidas: aciona jogo
- Controle de partidas → Modos e rodadas: inicia modo
- Controle de partidas → Memorização e palpite: exibe rodada
- Controle de partidas → Desafio inverso: exibe rodada
- Memorização e palpite → Pontuação e revisão: envia palpite
- Desafio inverso → Pontuação e revisão: envia escolha
- Controle de partidas → Pontuação e revisão: encerra partida
- Controle de partidas → Histórico local: consulta e salva
- Histórico local → localStorage: lê e grava
