CBriscola.Avalonia Giulio Sorrentino
winget install --id=GiulioSorrentino.CBriscola.Avalonia -e
Simulatore del gioco della briscola a due giocatori senza multiplayer in Avalonia col dialetto material di google. Non utilizza lo stylesheet di google, ma utilizza la ReactiveUI. L'algoritmo è brevettato: i punti in totale sono 120, ossia 4 assi che valgono 11 punti ciascuno, 4 3 che valgono 10 punti ciascuno, 4 10 che valgono 4 punti ciascuno, 4 9 che valgono 3 punti ciascuno, 4 8 che valgono 2 punti ciascuno. Dal momento che la matematica non è una opinione: 4*11+4*10=84. 4*4+4*3+4*2=16+12+8=36 84+36=120 punti totali 120/2 = 60, servono 61 punti per vincere basandosi solo sui carichi si rischia di perdere, perché 84-61=23, bisogna prenderli quasi tutti e lasciare solo 23 punti di carichi 60-36=24, prendendo tutte le altre carte bastano solo 3 carichi per vincere. IL livello 1 gioca prendendo con la briscola, i livelli 2 e 3 seguono questa teoria.
CBriscola.Avalonia is a two-player Briscola card game simulator designed for strategic gameplay without multiplayer capabilities. The software leverages Avalonia with Google's Material Design dialect and employs ReactiveUI for an interactive experience, eschewing Google's stylesheets.
Key Features:
- Patented Scoring Algorithm: Scores total 120 points, with specific values assigned to cards (e.g., Aces worth 11, Threes worth 10).
- Reactive UI: Ensures smooth and responsive gameplay.
- Material Design Aesthetics: Offers a clean interface without relying on Google's stylesheets.
- Card Variant Support: Includes the "bussata" variant, requiring players to respond to the leading suit.
Audience & Benefits: Ideal for casual and competitive players seeking strategic depth. The game enhances decision-making skills with real-time score updates, ensuring a fair and challenging experience against AI opponents.
README
CBriscola
:it: Made in Italy. Il primo prodotto serio pubblicato in avalonia col dialetto material ma senza il foglio di stile di google ed internazionalizzato.
Questo gioco dimostra che la teoria dei giochi è vera: l'algorimo brevettato funziona su tutti i giochi di carte senza piatto.
CBriscola.Material
Quello che avete davanti non è il gioco della briscola come si intende oggi, perché oggi tutti i simulatori di briscola dicono "hai preso l'asso, bravo" e finisce lì. Quello che avete davanti è un simulatore equo e professionale, con punteggio aggiornato in tempo reale, in modo da poter decidere se "rischiare" o meno coscientemente, scritto in avalonia col dialetto material. Sembra strano a dirsi, ma è Hard Core, perché si ha il potere di cambiare in ogni istante l'andamento della parita coscientemente con le proprie scelte.
Dal momento che avalonia ha i timer che vengono blacklistati, c'è il pulsante per continuare a giocare.
Permette di usare la variante "bussata" nella quale bisogna rispondere al seme (il "poker" nella teoria dei giochi).
Questa variante, a partire dalla versione 1.0, ha la particolarità che l'IA si fissa sul seme "primo di mano" quindi risulta molto più difficile vincere.
E' in avalonia, ma col dialetto material di google, ma senza usare il foglio di stile di google, ma usando la reactive ui (si legge multithreaded)
Use case
Le carte si vedono più grandi sui tablet in modalità portrait e non landscape, per cui il nonnino col pro x, mentre aspetta il pullman o la metropolitana gioca, magari con denari come briscola e il computer, primo di mano, ha il 3 e l'asso di briscola ed un carico non meglio specificato. Da primo di mano gioca il carico ed il noninno non può sopratagliare né ha denari, quindi lascia andare la prima volta, la seconda volta consecutiva, la terza volta consecutiva e poi urla "Guarda che sto piombo a denari.".
Questo è il motto registrato per questa briscola.
Come installare
Su Windows
Prerequisiti:
https://winstall.app/apps/Microsoft.DotNet.DesktopRuntime.9
Note: i package sono system indpedent ed IL, per cui in teoria è sufficiente reinstallare il pacchetto ad ogni aggiornamento del desktop runtime ed avviare il programma una volta per ottenere il codice binario aggiornato. Ovviamente se aggiornano avalonia bisogna ricompilare.
Su GNU/linux
Seguite le istruzioni su http://numeronesoft.ddns.net:8080
NOTA BENE: la connessione a numeronesoft.ddns.net non e https
Poi installate cbriscola.avalonia
Prerequisiti:
https://learn.microsoft.com/en-us/linux/packages
Note: i package sono system indpedent ed IL, per cui in teoria è sufficiente reinstallare il pacchetto ad ogni aggiornamento del desktop runtime ed avviare il programma una volta per ottenere il codice binario aggiornato. Ovviamente se aggiornano avalonia bisogna ricompilare.
ATTENZIONE:
Avalonia si basa su due librerie native libharfbuzzsharp e libskiasharp che non sono libere, quindi avalonia non è libero.
Per compilare
Bisogna scaricarsi da nuget il package CardFramework.avalonia
Come funziona
Per festeggiare, vi spiego come funziona il mio algoritmo brevettato: i punti in totale sono 120, ossia 4 assi che valgono 11 punti ciascuno, 4 3 che valgono 10 punti ciascuno, 4 10 che valgono 4 punti ciascuno, 4 9 che valgono 3 punti ciascuno, 4 8 che valgono 2 punti ciascuno. Dal momento che la matematica non è una opinione: 4x11+4x10=84. 4x4+4x3+4x2=16+12+8=36
84+36=120 punti totali
120/2 = 60, servono 61 punti per vincere
basandosi solo sui carichi si rischia di perdere, perché
84-61=23, bisogna prenderli quasi tutti e lasciare solo 23 punti di carichi
60-36=24, prendendo tutte le altre carte bastano solo 3 carichi per vincere.
Per cui non metto i livelli, ma vi lascio imparare la teoria delle carte a lungo, da me inventata a 18 anni, con la wxbriscola, che mi ha portato l'amore di Francesca.
Internazionalizzazione
Aprire il file MainWindows.axaml, all'interno del tag MainWindow.Resources ci sono qulli che vengono chiamati dizionari. BIsogna copiare un dizionario ed aggiungerlo alla fine dei dizionari, chiamarlo con la denominazione internazionale a due carattri ella lingua (it per italiano, pt per portoghese, es per spagnolo e via dicendo) e bisogna tradurre tutto qullo che è il contenuto del tag x:string, non il parametro.
Infine compilare.
Dove recuperare i mazzi aggiuntivi
I mazzi aggiuntivi sono quelli della wxbriscola, si possono scaricare sulle relative home page dei progetti, per windows e linux e per GNU/Limux dal mio repository.
Bug noti
In questa versione i mazzi aggiuntivi non vengono riletti ad ogni esecuzione della pagina opzioni, perché è una e viene caricata solo la prima volta. E' necessario chiudere e riaprire il programma una volta installati i mazzi aggiuntivi.
In questa versione non è possibile vedere più di due avvisi nella notifica, a volte ce ne possono essere anche tre.
Se si usa un mazzo non completo all'avvio del programma, verrà caricato il mazzo napoletano e l'avviso non è garantito che esca.
Le Property in avalonia
Per chi non lo sapesse, le property in avalonia dovrebbero essere scrivibili una sola volta e sempre leggibili, solo che avalonia è in c# e le property in c# sono r/w. Bisogna programmarle per essere readonly.
Mi spiego:
private static resourcedictionary dic;
public static resourcedictionary d{ get {return dic;} }
dic va modificato una sola volta, proprio come faccio, quindi il dizionario è un esempio di property in avalonia ben fatta.
Gli unici che possono definire anche il set sono proprio gli autori di avalonia.
E' semplicissimo.
Screenshot
Su debian
Su Windows
Video di presentazione
https://photos.app.goo.gl/Y2K9T1A2BMZSc7bB8