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 si basa sul framework per giochi di carte equi che include un algorimo brevettato che funziona su tutti i giochi di carte senza piatto ed è il migliore teorico, ma la teoria dei giochi è falsa, perché UNO (per dirne uno) è un gioco di carte di logica, non di matematica, e basta un esempio per smentire una credenza, mentre per far diventare la credenza teoria serve dimostrarla per tutti i casi.
È il primo software in Google material ad avere gli accenti su android senza essere polarizzabile.

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
Android
Per dotnet 10 c'è il prodotto quasi completo, a cui mancano solo i DLC, che con l'attuale avalonia non si possono avere.
A tal proposito, vi voglio segnalare il mio video per capire prché al momento non c'è modo di avere i DLC su android con dotnet.


Bug noti della versione per android:
I mazzi aggiuntivi non possono essere installati
Le pagine non si aprono sempre, perché l'app cercava i mazzi nella root del telefono e l'IA si è arrabbiata. IL sistema funziona e bisogna solo aspettare che le IA del telefono si calmino.
windows
(da copiare in esegui)
unigetui://giuliosorrentino.cbriscola.avalonia
Unix

Prerequisiti:
Windows
unigetui://DesktopRuntime
installare il windows desktopruntime 10
Unix
https://learn.microsoft.com/it-it/linux/packages
Bisogna installare libice6 e libsm6 e bisogna precaricare freetype per farlo funzionare.
E' stato dimostrato che il software è perfettamente bilanciato, perché il binario viene ottimizzato dal dotnet.
Per debian
Il pacchetto è disponibile nel mio repository. Tutte le istruzioni le trovate su http://numeronesoft.ddns.net:8080, basta installare cbriscola.avalonia per amd64 e per arm64, in alternativa potete prendere la versione unix, sapendo che il binario è per amd64 ed avviarlo con dotnet /usr/game/cbriscola.avalonia/cbriscola.avalonia.Desktop.dll.
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.
L'anteprima funziona solo se le cartelle dei mazzi sono completi, perché genera un numero random e prende l'immagine corrispondente. Se non c'è l'immagine il programma crasha, la mancanza dell'immagine non è gestita appositamente perché ritenuto inutile: i mazzi devono essere completi per definizione.
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
Il caso degli acccenti
Ho aperto i resource dictionary su debian con libreoffice, ho sistemato gli accenti, ed ho salvato in txt ottenendo un file unicode puro.
A questi punto sono andato su windows ed ho visto che con visual studio i resource dictionary vengono autmaticamente convertiti in ascii(rt).
Quindi, una volta ottenuto il file in unicode puro, bisogna ricompilare con la linea di comando, il file txt che si ottiene da libreoffice è quasi universale.
Video di presentazione
https://www.youtube.com/watch?v=wraMolVGKB0&t=6s
Donazione
http://numerone.altervista.org/donazioni.php