Skip to content
← Indietro

Mocard

Gioco di carte multiplayer locale (LAN)

Sperimentale
Kotlin Jetpack Compose Material 3 Ktor Room Coil Python Tkinter .mocard Export/Import
Mocard

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.

**Giochi multipli, salvataggio e import**. L'app gestisce più "Giochi", ognuno è un set autosufficiente di regole + catalogo carte + immagini personalizzate. Crei, duplichi, esporti e importi giochi a piacere; uno è marcato `default` ed è quello caricato automaticamente in Nuova Partita salvo override esplicito. L'export produce un file `.mocard` (zip con `manifest.json`, `game.json` e cartella `images/`, MIME `application/vnd.mocard.game+zip`, schema `mocard.game` versione 1) — lo passi a un altro giocatore via Drive/Telegram/USB e lui lo importa sul suo telefono ottenendo un Gioco identico al tuo.

**Mocard Configurator (tool desktop)**. App Python + Tkinter, eseguibile su Windows con doppio click sul `run.bat` (al primo avvio crea un venv locale e installa solo Pillow), oppure da terminale su macOS/Linux con `python main.py`. Apri un `.mocard` esportato dall'app, modifichi regole / configurazione mazzo / definizione carte, agganci immagini personalizzate dalla cartella del PC, e salvi un nuovo `.mocard` da reimportare sul telefono. Utile per preparare un set di carte completo prima di sederti a giocare, senza dover toccare lo smartphone.

Stack Android: Kotlin + Jetpack Compose, Ktor (server CIO + client + WebSockets), Gson, ZXing (QR), Coil (immagini), Room (storico partite + tabella `games`). Stack tool: Python 3.10+, Tkinter, Pillow.

Mocard Configurator

Mocard Configurator — placeholder, screenshot dell'app desktop in arrivo

Editor desktop (Python + Tkinter) per pacchettizzare giochi `.mocard` da PC: apri uno zip esportato dall'app, modifichi regole / mazzo / carte / immagini, salvi un nuovo `.mocard` da reimportare sul telefono. Su Windows si avvia con doppio click su `run.bat`, su macOS/Linux con `python main.py`.

Funzionalità

  • Giochi multipli salvati in-app: regole + catalogo carte + immagini, uno marcato default
  • Export `.mocard`: pacchetto zip portabile con manifest, game.json e cartella images/
  • Import `.mocard`: ricevi un Gioco da un altro telefono e lo carichi identico
  • Tool desktop "Mocard Configurator" (Python + Tkinter): prepara un Gioco da PC, salva `.mocard`, reimporta in app
  • Schema `mocard.game` v1, MIME `application/vnd.mocard.game+zip` (formato documentato e stabile)
  • 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

  • Gestione Giochi: crea / duplica / esporta `.mocard` / importa `.mocard` / segna come default
  • 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)
  • Mocard Configurator: editor PC del catalogo carte e delle regole

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
  • Per il Configurator desktop: Python 3.10+ (Windows con `run.bat`, oppure macOS/Linux con `python main.py`)
Coming soon
Privacy policy