Files
shalom/README.md
2026-07-02 15:32:07 +02:00

77 lines
3.4 KiB
Markdown

# 🎰 ELSA GAMBLING
Web app (HTML + CSS + JS vanilla) che assegna le persone alle stanze con un
**algoritmo di matching** e rivela il risultato come uno **show di scommesse /
slot machine**: rulli che rallentano, near-miss, drumroll, coriandoli, jackpot
sulle stanze con jacuzzi.
## Come avviare
Basta aprire **`index.html`** in un browser (doppio click). **Funziona 100%
offline**: librerie (three.js, canvas-confetti) e font sono in `vendor/`, nessuna
dipendenza da internet — perfetto per un proiettore senza wifi.
In alternativa, con un mini server locale:
```bash
python3 -m http.server 8080
# poi apri http://localhost:8080
```
## Come si gioca
- **START / SPINNA!** — rivela la persona successiva con un giro di slot.
- **AUTO ▶** — rivela tutti in sequenza da solo (modalità proiettore).
- **RE-ROLL 🎲** — rifà il sorteggio (nuova assegnazione).
- **🔊** — on/off dei suoni: **campioni reali stile slot** (whirr dei rulli nel
roll, jingle di vincita, sirena di jackpot, monete — in `sounds/`, royalty-free
[Mixkit](https://mixkit.co/free-sound-effects/slot-machine/)) con **fallback
sintetizzato** se i file non caricano (es. offline totale).
- **Scommesse** — prima di ogni giro clicca una stanza nel pannello a destra per
puntare 10 gettoni; se indovini vinci in base alla quota. Contro di te giocano
3 scommettitori simulati (leaderboard live).
I posti con **jacuzzi** (Argo, Eolo, "Quanto te la rischi") sono i jackpot e
vengono rivelati per ultimi, con celebrazione extra.
**Effetto SHALOM:** vincere una stanza con idromassaggio (Argo, Eolo, "Quanto te
la rischi") fa partire un effetto a caso tra 4 — fiammate + leone infuocato, video
a schermo intero con `shalom.mp3`, il combo (flashbang di fuoco poi video), oppure
Gesù che scende dall'alto con luce evangelica e `gesu_song.mp3`. Tap per saltare.
Asset in `image/`, `video/`, `sounds/`.
**Nessun match (~30%):** ogni tanto i 3 rulli si fermano su stanze diverse →
effetto pazzo (sirena + strobo + glitch + timbro "NO MATCH"), le puntate del giro
vengono annullate e la persona **ri-tira** (senza avanzare). Max 2 no-match di fila.
## Regole del matching
- Ogni stanza è **mono-genere** (M con M, F con F).
- L'algoritmo partiziona le stanze tra i due generi rispettando le capienze, poi
distribuisce le persone a caso senza lasciare stanze vuote.
- Verificato su 5000 run: 0 violazioni del vincolo, nessuna stanza vuota.
## File
| File | Ruolo |
|------|-------|
| `index.html` | Struttura + link CDN/font |
| `styles.css` | Tema neon/casino |
| `data.js` | Stanze e partecipanti (sorgente dati) |
| `matching.js` | Algoritmo di assegnazione (testabile in Node) |
| `app.js` | Motore reveal: rulli, audio, three.js, coriandoli, scommesse |
| `sounds/` | SFX reali stile slot (Mixkit, royalty-free): reel-spin, win, jackpot, coins |
| `vendor/` | Librerie e font in locale (three.js, canvas-confetti, woff2) — app offline |
| `docs/` | Ricerca su stile gambling, suspense, interattività, implementazione |
## Dati attuali
16 persone (6 F / 10 M) · 8 stanze / 18 posti. Modifica `data.js` per cambiare
nomi, generi o stanze — l'app si adatta da sola.
## Idee non ancora fatte (possibili evoluzioni)
- **Scommesse multi-persona reali** dai telefoni (ora: singolo operatore + bot
simulati). Servirebbe `BroadcastChannel` o un piccolo backend.
- **Gran finale** dedicato all'ultimo jackpot (ora tutti i jackpot sono uguali).