# breno-guedes/jogo-de-clickar architecture

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

- Interactive diagram: https://gitdiagram.com/breno-guedes/jogo-de-clickar
- Repository: https://github.com/breno-guedes/jogo-de-clickar

## Overview

Jogo de Clickar is a Flutter precision-tapping game: the player starts a round, taps a relocating target to score before a 30-second timer expires, then can replay or return home. The README describes navigation, timer-based gameplay, score, and reusable UI components. Dart source was not sampled, so internal call details are inferred only from the documented responsibilities and file names; uncertain links are omitted.

Main entry points: [`lib/screens/game_screen.dart`](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/screens/game_screen.dart) (Game screen), [`lib/screens/home_screen.dart`](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/screens/home_screen.dart) (Home screen), [`lib/main.dart`](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/main.dart) (App entry), [`lib/services/game_service.dart`](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/services/game_service.dart) (Game service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_screens["Game screens"]
  node_app["App entry<br/>[main.dart]"]
  node_home["Home screen<br/>[home_screen.dart]"]
  node_game["Game screen<br/>[game_screen.dart]"]
end

subgraph group_runtime["Round logic"]
  node_service["Game service<br/>[game_service.dart]"]
  node_state["Game state<br/>[game_state.dart]"]
end

subgraph group_ui["Game UI"]
  node_target["Target<br/>[target.dart]"]
  node_score["Score display<br/>[score_display.dart]"]
  node_time["Time display<br/>[time_display.dart]"]
end

node_player(("Player"))

node_player -->|"opens"| node_app
node_app -->|"shows"| node_home
node_player -->|"starts round"| node_home
node_home -->|"navigates"| node_game
node_game -->|"manages round"| node_service
node_service -->|"updates"| node_state
node_game -->|"renders"| node_target
node_game -->|"renders"| node_score
node_game -->|"renders"| node_time
node_player -->|"taps"| node_target
node_game -->|"returns home"| node_home

click node_app "https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/main.dart"
click node_home "https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/screens/home_screen.dart"
click node_game "https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/screens/game_screen.dart"
click node_service "https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/services/game_service.dart"
click node_state "https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/models/game_state.dart"
click node_target "https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/widgets/target.dart"
click node_score "https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/widgets/score_display.dart"
click node_time "https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/widgets/time_display.dart"

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_app,node_home,node_game toneBlue
class node_service,node_state toneAmber
class node_target,node_score,node_time toneMint
class node_player toneIndigo
```

## Components

### Game screens

- [App entry](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/main.dart): `lib/main.dart`
- [Home screen](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/screens/home_screen.dart): `lib/screens/home_screen.dart`
- [Game screen](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/screens/game_screen.dart): `lib/screens/game_screen.dart`

### Round logic

- [Game service](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/services/game_service.dart): `lib/services/game_service.dart`
- [Game state](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/models/game_state.dart): `lib/models/game_state.dart`

### Game UI

- [Target](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/widgets/target.dart): `lib/widgets/target.dart`
- [Score display](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/widgets/score_display.dart): `lib/widgets/score_display.dart`
- [Time display](https://github.com/breno-guedes/jogo-de-clickar/blob/main/lib/widgets/time_display.dart): `lib/widgets/time_display.dart`

### Other components

- **Player**

## Connections

- Player → App entry: opens
- App entry → Home screen: shows
- Player → Home screen: starts round
- Home screen → Game screen: navigates
- Game screen → Game service: manages round
- Game service → Game state: updates
- Game screen → Target: renders
- Game screen → Score display: renders
- Game screen → Time display: renders
- Player → Target: taps
- Game screen → Home screen: returns home
