Mocard
Gioco di carte multiplayer locale (LAN)
Mocard è un gioco di carte a colori multiplayer locale, ispirato all'architettura di My Vote (server Ktor embedded + client tramite QR code). L'host avvia un server WebSocket sulla porta 8766, genera un QR e gli altri giocatori scansionano per unirsi. Tutte le regole sono configurabili dalle impostazioni: numero carte iniziali, accumulo +2/+4, dichiarazione "MONO", penalità, restrizioni speciali. Anche le immagini di OGNI carta sono sostituibili dalla galleria — separi il regolamento dalla grafica. Stack: Kotlin + Jetpack Compose, Ktor (server CIO + client + WebSockets), Gson, ZXing (QR), Coil (immagini), Room (storico partite).
Funzionalità
- Server Ktor LAN embedded (host) — porta 8766
- QR join: il client scansiona, basta
- mDNS discovery del server sulla rete
- Regole completamente configurabili (carte iniziali, accumuli, MONO, ...)
- Immagini di OGNI carta personalizzabili dalla galleria
- Stato canonico solo sull'host, mani private sul singolo dispositivo
- Storico partite (Room)
- Foreground service per non perdere la connessione
Parametrizzazioni
- Carte iniziali per giocatore (1–15)
- Frequenza carte speciali: bassa / media / alta
- Accumulo +2 su +2 / +4 su +4 / mix
- Penalità "MONO" dimenticato (numero carte)
- Restrizione +4 (giocabile solo se non hai il colore)
- Punteggio per vincere la partita
- Composizione mazzo (colori, range numeri, duplicati)
Pre-requisiti tecnici
- Android 8.0+ (API 26)
- 2+ dispositivi sulla stessa rete Wi-Fi
- Permessi: Wi-Fi state, Camera (per QR), Photos (per immagini carte)
- ~80 MB di spazio