3.4 KiB
🎰 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:
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) 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
BroadcastChannelo un piccolo backend. - Gran finale dedicato all'ultimo jackpot (ora tutti i jackpot sono uguali).