Share | RSS | lun 29/04/2024 | Menu

Aggiungere il motore di scacchi LC0 - Leela Chess Zero alla scacchiera elettronica Chessnut Air

Categoria: SCACCHI

KEYWORDS: ai | android | chessnut | informatica | scacchi |
Inserito in DATA: 25/02/2024 | Vai ai COMMENTI
Ho appena scoperto, a partire da un video di Chessnut, che si possono aggiungere abbastanza facilmente dei motori di scacchi alternativa e giocarci con la scacchiera elettronica. Ho provato con il famoso LC0 - Leela Chess Zero ed ha funzionato, sia si Windows sia su Android. Mi è infatti per caso capitato sottomano questo video che mostra come fare con il Mac, ed ora vi spiego come ho fatto io sia su Windows sia su Android.
Il motore di cui tratto è LC0 e semplicemente perché questo conoscevo e ho trovato sul web, nulla toglie che si possa fare con altri motore seguendo lo stesso principio.

Windows: Chessnut App

Su Windows parliamo della app Chessnut. Per quanto riguarda Luca's Chess per ora non l'ho ancora provato, mentre come avrete visto in questo mio articolo ora è possibile collegare la scacchiera al browser via bluetooth e giocare su Chess.com e Lichess senza il filo, e su Lichess c'è il bellissimo bot Maia che gioca in maniera molto simile a quanto farebbe un umano.
Quando ho visto quel video su Youtube mi sono ricordato che in effetti avevo visto quella sezione "UCI" nella app Chessnut ma, siccome non la uso mai con la app ufficiale per via del filo, me ne ero completamente scordato. Ho deciso allora di provare, anche perché il motore ufficiale della app mi pare un po' stupido (vd. questo articolo per mie considerazioni sui punti deboli di questa comunque bellissima scacchiera).
Siccome mi piace il bot Maia Chess, come scritto sopra, che per quel che so è il motore LC0 ma addestrato in maniera differente a seconda dei livello di gioco, ho cercato il motore LC0 ovvero Leela Chess Zero e l'ho trovato qui https://lczero.org e potete accedere alla sezione di download. Io ho un PC recente ma piuttosto scarso, economico, quindi sono andato direttamente a scaricare la versione OpenBLAS indicata per PC vecchi.
Dal video Youtube si vede che per Mac basta importare il file del motore; io ho scarico LC0, l'ho scompattato, quindi ho effettuato l'importazione dalla cartella scompattata. Sfortunatamente, non ha funzionato nulla. L'importazione va a buon fine, ma se provate a giocarci non effettua nessuna mossa, senza però dare nessun errore. Semplicemente, la partita si avvia e LC0 non gioca.
Nel video si legge per qualche secondo alla fine che l'importazione va fatta dalla cartella Downloads, ma per scrupolo ho controllato nella cartella della app Chessnut "Uciengine" e risulta importato solo il file exe; nel video Youtube in effetti c'è il solito pacchetto .app dei Mac che è completo, in Windows l'eseguibile invece è separato dalle librerie e altri file componenti, e questi erano assenti dalla cartella della app Chessnut.
Ho dunque riprovato copiando tutti i file a mano nella cartella Uciengine della app Chessnut ma l'importazione del motore questa volta falliva.
Ho fatto dunque un terzo tentativo: prima ho importato il motore lasciando tutto quanto in una cartella separata, poi ho controllato che in Uciengine fosse presente il file .exe del motore correttamente importato e nella stessa cartella ho copiato tutti i restanti file del motore.
Quindi:
1) scaricare LC0 e scompattarlo in una cartella a scelta
2) da app Chessnut importare il motore selezionando il file exe
3) copiare tutti i restanti file della cartella LC0 nella cartella Uciengine dell'app Chessnut
A questo punto se avviate la app potete giocare contro LC0 che funzionerà senza problemi.
Esiste anche il vero e proprio MaiaUCI - vd questo link e/oppure questo link - ma sinceramente l'installazione diventa un po' più complessa e non ho voglia di provarla anche perché continuerò a non usare la app Windows a meno che non sia proprio necessario: già il fatto che non salva la password, che è da inserire ogni santa volta che si avvia la app, mi fa girare le palle; ma la dipendenza dal filo rimane comunque un limite enorme. Se qualcuno lo fa può farmelo sapere nei commenti.
Non iniziate subito copiando tutto il motore nella cartella UCIENGINE della app Chessnut: il file .exe dev'essere importato tramite la procedura della app e, se già lo copiate nella cartella, non sarà possibile l'importazione poiché la app non potrebbe copiarlo da importazione probabilmente perché non può sovrascrivere e quindi non può aggiungerlo al suo elenco (che peraltro è semplicemente, pare, un file di testo). Quindi prima importate il file .exe del motore, poi copiate il resto dei file a mano.
Il motore permette di specificare la forza, considerate però che è comunque forte, io (che però sono una chiavica di principiante) ho provato una partita al livello 3 e mi ha disfatto.
EDIT 28/03/2024: LEGGI QUESTO ARTICOLO SU LUCAS CHESS E HAI RISOLTO TUTTO!!!

Android: Whitepawn

Quando ho fatto il lavoro per Windows ho visto che nel sito internet di LC0 era elencata anche la app .apk per Android. La app ufficiale (non la beta, che stanno distribuendo ma non ho provato) di Chessnut non permette l'importazione di motore, ma so che c'è invece la possibilità di farlo nella app Whitepawn. Avevo già provato in passato a capire come funzionava ma senza convinzione e, partendo dal presupposto che il motore fosse da "importare" a partire da un file, non ci ero riuscito, seppure senza impegnarmi. Il punto è invece che il motore è da importare a partire da un motore installato come app nel sistema operativo.
Una volta scaricata e importata la app di LC0 in Android - lo fate sempre dalla pagina download del sito di Leela, link sopra - si vedrà che, da Whitepawn, basta effettuare ora l'aggiunta di motore che troverà subito installata nel sistema operativo la app LC0 e mostrerà la possibilità di importarne dunque il motore in Whitepawn. E il gioco è fatto.
Unico neo: non chiedetemi come si modificano le impostazioni per abbassarne la forza ché non ci ho capito una fava di tutti quei parametri! In questa pagina c'è una spiegazione.
EDIT 06/03/2024: ieri sera ho provato la versione Beta della nuova app Android di Chessnut, e ho scoperto che integra più motori tra i quali anche LC0 e Maia (con anche variante CHess960); sfortunatamente la app ha un bruttissimo bug ovvero lo schermo non viene forzatamente mantenuto acceso ma si spegne secondo le impostazioni di Android e chiaramente quando si spegne la app va in pausa e non trasmette più le mosse alla scacchiera. Per usarla, bisogna modificare le impostazioni di spegnimento schermo prima di iniziare la partita, chiaramente ricordatevi poi di modificarle. Io ho preferito tornare alla vecchia app e sbattermene.

Conclusioni

A cosa serve fare tutto ciò?
Be, innanzitutto, a smanettare, cosa che è sempre piuttosto soddisfacente. In secondo luogo, invece, per provare se un nuovo motore supera quei limiti che avevo già evidenziato del motore interno della app Chessnut che è un po' scemo. Non avevo mai badato che nella app per Windows oltre a Stockfish c'è anche un altro motore di nome "Fairy" che però come file è "fairy-stockfish" e non so cosa sia, però ho già detto che la app per Windows, causa il filo, non la uso per niente.
La app per Android invece non so che motore abbia; certo è che in entrambi in casi il comportamento di questo motore, come detto, è un po' noioso per poca fantasia di mosse, e ha qualche bug (es. la promozione a cavallo).
Si spera che con LC0 si superino e bug, e si ottenga un motore un po' più spigliato; io per ora ci ho fatto due partite e mi è sembrato carino.
LC0 è un motore comunque forte: già su Windows il Liv.3 è comunque un giocatore forte, mentre su Whitepawn non c'è apparentemente verso di impostare la forza, probabilmente bisogna leggersi la documentazione perchè le impostazioni sono tante e tutte riguardanti le variabili interne.
Ho provato su Whitepawn a controllare in queste varie variabli e c'è la possibilità di inserire Chess960 ma mi ha caricato una posizione standard, bo; del resto la standard è una delle 960 posizioni e io ho provato una sola partita, chi lo sa. In teoria anche a bassi livelli, differentemente da Stockfish, LC0 dovrebbe essere meno idiota ovvero dovrebbe soffrire meno del paradosso di Moravec ma, essendo il Liv.3 già troppo per me, proverò più avanti con i livelli 1 e 2 e vi farò sapere.
Di seguito due partite che ho giocato con la versione di Whitepawn.


Non perderti gli altri articoli dal blog categoria SCACCHI!
Lo sai che nel mio sito c'e' anche una apposita sezione SCACCHI? Scoprila!

Materiale a corredo


Commenti all'articolo

Premetto che il sistema di commenti è mio indipendente e non prevede memorizzazione di indirizzi email o altro nel database. Si usa solo un nickname, così non rompete le balle con la privacy.
Ricordate che i commenti non saranno visibili finché io non li avrò validati.





© il sommo Bostro-X - www.BOSTRO.net

Questo sito l'ho realizzato io e quindi è proprietà intellettuale mia, e non ne concedo alcuna autorizzazione.
Visitando il sito si sottintende la presa visione delle CONDIZIONI D'USO
CONTATTI: info[at]bostro.net

Aggiornamenti via feed RSS | Torna in cima