# yvan-dev401/jeux architecture

> Architecture diagram of the GitHub repository yvan-dev401/jeux, 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/yvan-dev401/jeux
- Repository: https://github.com/yvan-dev401/jeux

## Overview

Jeux is a static, phone-passable party-game site. Players choose one of four games, open or resume a shared “soirée,” then play a game-specific round; the shared room handles players, timer, scores, transfer, and closing. The soirée is encoded in the URL fragment, so reloading or transferring its link restores its state without a server or browser storage. The README documents the game capabilities and shared responsibilities; sampled source was not provided, so internal game-module wiring is shown only where supported by the file names and README.

Main entry points: [`assets/js/salle.js`](https://github.com/yvan-dev401/jeux/blob/main/assets/js/salle.js) (Room interface), [`index.html`](https://github.com/yvan-dev401/jeux/blob/main/index.html) (Game catalogue), [`jeux/ta-mere-en-slip/index.html`](https://github.com/yvan-dev401/jeux/blob/main/jeux/ta-mere-en-slip/index.html) (Game entry), [`jeux/qui-a-dit-ca/index.html`](https://github.com/yvan-dev401/jeux/blob/main/jeux/qui-a-dit-ca/index.html) (Game entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_catalogue["Game catalogue"]
  node_home["Game catalogue<br/>[index.html]"]
end

subgraph group_shared["Shared soirée"]
  node_room["Room interface<br/>[salle.js]"]
  node_core["Evening state<br/>[noyau.js]"]
  node_fragment["URL fragment"]
end

subgraph group_slip["Ta mère en slip"]
  node_slip_page["Game entry<br/>[index.html]"]
  node_slip_logic["Card guessing<br/>[ta-mere-en-slip.js]"]
  node_slip_cards["Character and action cards<br/>[cartes.js]"]
  node_slip_ui["Round interface<br/>[ui-mime-ou-rien.js]"]
end

subgraph group_paroles["Qui a dit ça ?"]
  node_paroles_page["Game entry<br/>[index.html]"]
  node_paroles_logic["Anonymous answers<br/>[qui-a-dit-ca.js]"]
  node_paroles_ui["Round interface<br/>[ui-qui-a-dit-ca.js]"]
  node_questions["Question prompts<br/>[questions.js]"]
end

subgraph group_piege["Le mot piégé"]
  node_piege_page["Game entry<br/>[index.html]"]
  node_piege_logic["Hidden-word game<br/>[mot-piege.js]"]
  node_piege_ui["Round interface<br/>[ui-mot-piege.js]"]
  node_word_pairs["Word pairs<br/>[mots-pieges.js]"]
end

subgraph group_mime["Mime ou rien"]
  node_mime_page["Game entry<br/>[index.html]"]
  node_mime_logic["Timed mime rounds<br/>[mime-ou-rien.js]"]
  node_mime_prompts["Mime prompts<br/>[mimes.js]"]
  node_timer["Round timer<br/>[soiree.js]"]
end

node_player(("Players"))

node_player -->|"opens"| node_home
node_home -->|"selects"| node_slip_page
node_home -->|"selects"| node_paroles_page
node_home -->|"selects"| node_piege_page
node_home -->|"selects"| node_mime_page
node_player -->|"opens or resumes"| node_room
node_room -->|"manages state"| node_core
node_room -->|"reads and writes"| node_fragment
node_player -->|"transfers link"| node_fragment
node_slip_page -->|"starts game"| node_slip_logic
node_slip_page -->|"opens room"| node_room
node_slip_logic -->|"uses cards"| node_slip_cards
node_paroles_page -->|"starts game"| node_paroles_logic
node_paroles_page -->|"opens room"| node_room
node_paroles_logic -->|"uses prompts"| node_questions
node_piege_page -->|"starts game"| node_piege_logic
node_piege_page -->|"opens room"| node_room
node_piege_logic -->|"uses word pairs"| node_word_pairs
node_mime_page -->|"starts game"| node_mime_logic
node_mime_page -->|"opens room"| node_room
node_mime_logic -->|"uses prompts"| node_mime_prompts

click node_home "https://github.com/yvan-dev401/jeux/blob/main/index.html"
click node_slip_page "https://github.com/yvan-dev401/jeux/blob/main/jeux/ta-mere-en-slip/index.html"
click node_paroles_page "https://github.com/yvan-dev401/jeux/blob/main/jeux/qui-a-dit-ca/index.html"
click node_piege_page "https://github.com/yvan-dev401/jeux/blob/main/jeux/mot-piege/index.html"
click node_mime_page "https://github.com/yvan-dev401/jeux/blob/main/jeux/mime-ou-rien/index.html"
click node_room "https://github.com/yvan-dev401/jeux/blob/main/assets/js/salle.js"
click node_core "https://github.com/yvan-dev401/jeux/blob/main/assets/js/noyau.js"
click node_slip_logic "https://github.com/yvan-dev401/jeux/blob/main/assets/js/ta-mere-en-slip.js"
click node_slip_cards "https://github.com/yvan-dev401/jeux/blob/main/assets/js/cartes.js"
click node_slip_ui "https://github.com/yvan-dev401/jeux/blob/main/assets/js/ui-mime-ou-rien.js"
click node_paroles_logic "https://github.com/yvan-dev401/jeux/blob/main/assets/js/qui-a-dit-ca.js"
click node_paroles_ui "https://github.com/yvan-dev401/jeux/blob/main/assets/js/ui-qui-a-dit-ca.js"
click node_questions "https://github.com/yvan-dev401/jeux/blob/main/assets/js/questions.js"
click node_piege_logic "https://github.com/yvan-dev401/jeux/blob/main/assets/js/mot-piege.js"
click node_piege_ui "https://github.com/yvan-dev401/jeux/blob/main/assets/js/ui-mot-piege.js"
click node_word_pairs "https://github.com/yvan-dev401/jeux/blob/main/assets/js/mots-pieges.js"
click node_mime_logic "https://github.com/yvan-dev401/jeux/blob/main/assets/js/mime-ou-rien.js"
click node_mime_prompts "https://github.com/yvan-dev401/jeux/blob/main/assets/js/mimes.js"
click node_timer "https://github.com/yvan-dev401/jeux/blob/main/assets/js/soiree.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_home toneBlue
class node_room,node_core,node_fragment toneAmber
class node_slip_page,node_slip_logic,node_slip_cards,node_slip_ui toneMint
class node_paroles_page,node_paroles_logic,node_paroles_ui,node_questions toneRose
class node_piege_page,node_piege_logic,node_piege_ui,node_word_pairs,node_player toneIndigo
class node_mime_page,node_mime_logic,node_mime_prompts,node_timer toneTeal
```

## Components

### Game catalogue

- [Game catalogue](https://github.com/yvan-dev401/jeux/blob/main/index.html): `index.html`

### Shared soirée

- [Room interface](https://github.com/yvan-dev401/jeux/blob/main/assets/js/salle.js): `assets/js/salle.js`
- [Evening state](https://github.com/yvan-dev401/jeux/blob/main/assets/js/noyau.js): `assets/js/noyau.js`
- **URL fragment**

### Ta mère en slip

- [Game entry](https://github.com/yvan-dev401/jeux/blob/main/jeux/ta-mere-en-slip/index.html): `jeux/ta-mere-en-slip/index.html`
- [Card guessing](https://github.com/yvan-dev401/jeux/blob/main/assets/js/ta-mere-en-slip.js): `assets/js/ta-mere-en-slip.js`
- [Character and action cards](https://github.com/yvan-dev401/jeux/blob/main/assets/js/cartes.js): `assets/js/cartes.js`
- [Round interface](https://github.com/yvan-dev401/jeux/blob/main/assets/js/ui-mime-ou-rien.js): `assets/js/ui-mime-ou-rien.js`

### Qui a dit ça ?

- [Game entry](https://github.com/yvan-dev401/jeux/blob/main/jeux/qui-a-dit-ca/index.html): `jeux/qui-a-dit-ca/index.html`
- [Anonymous answers](https://github.com/yvan-dev401/jeux/blob/main/assets/js/qui-a-dit-ca.js): `assets/js/qui-a-dit-ca.js`
- [Round interface](https://github.com/yvan-dev401/jeux/blob/main/assets/js/ui-qui-a-dit-ca.js): `assets/js/ui-qui-a-dit-ca.js`
- [Question prompts](https://github.com/yvan-dev401/jeux/blob/main/assets/js/questions.js): `assets/js/questions.js`

### Le mot piégé

- [Game entry](https://github.com/yvan-dev401/jeux/blob/main/jeux/mot-piege/index.html): `jeux/mot-piege/index.html`
- [Hidden-word game](https://github.com/yvan-dev401/jeux/blob/main/assets/js/mot-piege.js): `assets/js/mot-piege.js`
- [Round interface](https://github.com/yvan-dev401/jeux/blob/main/assets/js/ui-mot-piege.js): `assets/js/ui-mot-piege.js`
- [Word pairs](https://github.com/yvan-dev401/jeux/blob/main/assets/js/mots-pieges.js): `assets/js/mots-pieges.js`

### Mime ou rien

- [Game entry](https://github.com/yvan-dev401/jeux/blob/main/jeux/mime-ou-rien/index.html): `jeux/mime-ou-rien/index.html`
- [Timed mime rounds](https://github.com/yvan-dev401/jeux/blob/main/assets/js/mime-ou-rien.js): `assets/js/mime-ou-rien.js`
- [Mime prompts](https://github.com/yvan-dev401/jeux/blob/main/assets/js/mimes.js): `assets/js/mimes.js`
- [Round timer](https://github.com/yvan-dev401/jeux/blob/main/assets/js/soiree.js): `assets/js/soiree.js`

### Other components

- **Players**

## Connections

- Players → Game catalogue: opens
- Game catalogue → Game entry: selects
- Game catalogue → Game entry: selects
- Game catalogue → Game entry: selects
- Game catalogue → Game entry: selects
- Players → Room interface: opens or resumes
- Room interface → Evening state: manages state
- Room interface → URL fragment: reads and writes
- Players → URL fragment: transfers link
- Game entry → Card guessing: starts game
- Game entry → Room interface: opens room
- Card guessing → Character and action cards: uses cards
- Game entry → Anonymous answers: starts game
- Game entry → Room interface: opens room
- Anonymous answers → Question prompts: uses prompts
- Game entry → Hidden-word game: starts game
- Game entry → Room interface: opens room
- Hidden-word game → Word pairs: uses word pairs
- Game entry → Timed mime rounds: starts game
- Game entry → Room interface: opens room
- Timed mime rounds → Mime prompts: uses prompts
