Skip to content
MorfeoITPublic

About

Trionfo - gioco di carte italiano (tressette con trionfo). Monorepo pnpm: motore di gioco, protocollo, web app.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Trionfo

Tressette e Trionfo — il gioco di carte italiano, giocabile online.
al Triònf nel ferrarese, Marafone o Beccaccino in Romagna.


Un gioco di carte per Tressette e Trionfo, cioè il tressette con la briscola. Non è un clone di un'app americana con le carte francesi: sono le quaranta carte italiane, con le regole vere e i punteggi in terzi di punto, come si contano al tavolo.

Per chi è pensato

Per chi ci gioca da quarant'anni. Il pubblico non sono i videogiocatori: è gente che al bar tira giù il tre di denari e sa esattamente cosa sta facendo.

Da qui discende tutto il resto delle scelte: caratteri grandi, contrasto alto, niente gergo da app, deve funzionare su un telefono tenuto in mano da una persona di settant'anni. Se una schermata ha bisogno di essere spiegata, è sbagliata.

Tre modi di giocare

Modo Come funziona
Solitario Un umano contro tre giocatori simulati. Funziona senza rete: in treno, in cantina, dove non prende.
Passa e gioca Da due a quattro persone sullo stesso telefono, con il sipario fra un turno e l'altro perché nessuno veda le carte degli altri. I posti vuoti li prendono i simulati.
Tavolo in rete Fino a quattro giocatori da dispositivi diversi. Stanza con un codice di quattro caratteri, niente registrazione: basta un soprannome.

Stato

Il motore di gioco e il client sono fatti e funzionanti: si gioca in solitario e in passa-e-gioca. Il tavolo in rete è il lavoro in corso.

Questo è un progetto personale portato avanti nei ritagli di tempo, non un prodotto commerciale: nessuna promessa di date.

Tre scelte che vale la pena raccontare

Le regole si scrivono una volta sola. Il motore è TypeScript puro, senza dipendenze, e gira identico sul client e sul server. In un gioco di carte online la fonte di bug numero uno è avere le regole implementate due volte in due linguaggi che pian piano divergono: qui il problema non può proprio esistere.

Il server non manda mai a un giocatore le carte degli altri. Ogni client riceve una vista personalizzata della partita. Non è una questione di fiducia nel client: se le carte altrui arrivano al browser, prima o poi qualcuno le guarda con gli strumenti per sviluppatori.

Ogni mano è riproducibile. Il mazzo si mescola con un generatore pseudocasuale con seme esplicito, e il seme si salva. Data la stessa partenza la mano si rigioca identica: serve per rivedere una partita e per i test di regressione, che altrimenti su un gioco di carte diventano impossibili.

E una trappola, per chi volesse implementarlo da sé: il 3 comanda ma l'Asso vale di più. La forza di presa e il valore in punti sono due ordinamenti diversi, e confonderli è l'errore classico della prima implementazione.

Com'è fatto

packages/engine     motore di gioco: regole, punteggi, giocatori simulati
packages/protocol   tipi condivisi dei messaggi fra client e server
apps/web            interfaccia: Vite + React + TypeScript

Monorepo TypeScript con pnpm workspaces. Node 22 o superiore.

Provarlo in locale

pnpm install
pnpm test          # i test del motore
pnpm typecheck

cd apps/web
pnpm dev           # apre l'interfaccia in sviluppo

Licenza

Codice rilasciato sotto GNU AGPL v3.

In breve: puoi usarlo, studiarlo, modificarlo e ridistribuirlo, anche per fini commerciali. In cambio, se lo modifichi e lo metti a disposizione di altri — compreso il caso in cui lo ospiti come servizio online, senza distribuire niente — devi pubblicare le tue modifiche con la stessa licenza.

Ho scelto l'AGPL e non la MIT proprio per il caso del gioco in rete: con le licenze permissive chi ospita un servizio non è tenuto a restituire nulla, perché non sta distribuendo software. Qui invece sì.

Le carte in apps/web/public/carte/ e in assets/carte/ sono immagini generate con l'intelligenza artificiale e seguono la stessa licenza del progetto. Essendo generate da IA la loro tutela è comunque debole: se ti servono per altro, prendile pure.


Di Manolo Buriani · Oxysoft, Ferrara

About

Trionfo - gioco di carte italiano (tressette con trionfo). Monorepo pnpm: motore di gioco, protocollo, web app.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages