ChessX: Aggiungere un motore (Stockfish)

Dopo l’articolo in cui veniva spiegato come installare ChessX su un PC GNU/Linux, vediamo oggi come aggiungere un motore al programma in modo che si possano fare analisi di partite. Il motore scelto è Stockfish.

Per prima cosa occorre scaricare Stockfish e compilarlo sul sistema. Siccome è gestito su github, per scaricare i sorgenti sotto controllo di configurazione occorre avere git installato sul proprio PC. Se non presente, dare quindi il comando:

$ sudo apt-get install git

Una volta installato git scaricare i sorgenti di Stockfish con il comando:

user:~$ git clone https://github.com/mcostalba/Stockfish.git stockfish
Cloning into 'stockfish'...
...
user:~$ _

Se tutto è andato bene viene creata una directory stockfish con all’interno i sorgenti. Per compilare, entrare nella directory stockfish/src e dare il seguente comando:

user:src$ make profile-build ARCH=x86-64-modern

NOTA: l’uso dell’architettura x86-64-modern va bene se avete un PC nuovo basato sulle recenti architetture Intel, altrimenti potete provare con x86-32 per PC vecchi o anche x86-64 su architettture a 64 bit di cui non siete completamente sicuri della “modernità” (o se avete problemi con la modern).

Se tutto è andato bene all’interno della directory deve comparire un file eseguibile di nome stockfish. Copiatelo dove preferite e provate a lanciarlo. Se tutto va bene deve comparire un messaggio e il programma rimane in attesa:

pf:stockfish$ ./stockfish
Stockfish 211113 64 SSE4.2 by Tord Romstad, Marco Costalba and Joona Kiiski
_

Dare Ctrl-C per uscire dal programma.

Il secondo passo da compiere consiste nell’associare a Stockfish il suo database delle aperture. Scaricarlo dalla pagina dei download del sito, decomprimere l’archivio e copiare il file Book.bin nella directory dove si trova l’eseguibile di Stockfish creato in precedenza.

Passando a questo punto a ChessX, vediamo come agganciare il motore.

Andare nel menù Edit e scegliere “Preferences”, qui selezionare il tab “Engines” e cliccare sul pulsante “Add”. Cercare l’eseguibile di Stockfish e selezionarlo. Nella linea “Directory” selezionare la directory dove si trova l’eseguibile di Stockfish (e il file Book.bin).

Finestra Preferences/Engines dopo il setup di Stockfish
ChessX: Finestra Preferences/Engines dopo il setup di Stockfish

Come ultimo passo prima di chiudere la finestra delle preferenze, cliccare su “Options”. Si entra così nella finestra per il setup dei parametri UCI (Universal Chess Interface, il protocollo con cui la GUI comunica con il motore). Qui per il momento è importante solo impostare il nome del database delle aperture. Cambiare quindi il parametro “Book File” assegnandogli il valore “Book.bin“.

ChessX: finestra per le impostazioni delle opzioni UCI
ChessX: finestra per le impostazioni delle opzioni UCI

A questo punto per dimostrare che il motore funziona basta impostare una posizione (menù Edit -> Setup Position), aprire il pannello di Analisi (View -> Analysis) e cliccare sul pulsante “Analysis”. Io ho provato con il seguente matto in otto mosse tratto da “Strategia e tattica degli scacchi” di Georgij Lisitsyn:

Il bianco muove e da matto in 8 mosse
Il bianco muove e da matto in 8 mosse

Quello che mi piacerebbe molto fare a questo punto sarebbe utilizzare il motore per giocare una posizione contro di lui. Questa è una funzionalità molto utile per allenarsi per esempio nei finali. Purtroppo però questo allo stato di sviluppo attuale del programma non è possibile. L’unica cosa che si può fare è analizzare una partita, cosa che vedremo in una prossima puntata.

Per allenarsi a giocare posizioni contro un’engine la soluzione più economica consiste probabilmente nell’installare una GUI semplice come ad esempio XBoard. e associarci il motore Stockfish. Operazioni banali, sulle quali non starò a dilungarmi.

ChessX: Installazione sotto GNU/Linux

In un precedente articolo abbiamo introdotto ChessX, un gestore di Database per partite di scacchi che ho deciso di provare sul mio nuovo PC con linux (Ubuntu 12.10). In questo primo articolo vedremo come installarlo, cosa che può risultare a prima vista problematica visto che il programma non è disponibile su nessun repository della distribuzione Ubuntu e per questo va scaricato come sorgente e compilato sulla macchina dove si vuole utilizzare.

La pagina per la compilazione sul sito di ChessX è piuttosto spartana e non da indicazioni su come preparare il PC, il che, soprattutto per un utente non specialista, può essere un problema. Il programma utilizza le librerie Qt, ed è quindi necessario installarle insieme a tutti i tool necessari per la compilazione dei programmi in tale ambiente. Fortunatamente non è complicato soprattutto perché Ubuntu fornisce una serie di tool che rendono facile questa operazione. Uno di questi tool, auto-apt, lo ho scoperto per l’occasione.

Come al solito i motori di ricerca aiutano, e dopo una rapida ricerca ho trovato una pagina di un utente Google+ (thank you very much Mr. Summers!) che spiega pressoché tutto. Per installare un’ambiente di sviluppo per Qt4 basta quindi dare da command line i seguenti comandi:

user@host:~$ sudo apt-get install libqt4-dev
user@host:~$ sudo apt-get install auto-apt
user@host:~$ sudo auto-apt update-local
user@host:~$ sudo auto-apt update
user@host:~$ sudo auto-apt updatedb

Siccome voglio utilizzare la versione attualmente sotto sviluppo (non è detto che non riesca anche a trovare un po’ di tempo per contribuire al progetto), occorre installare anche subversion:

user@host:~$ sudo apt-get install subversion

A questo punto per scaricare su una directory locale i sorgenti attualmente in sviluppo dare il seguente comando:

user@host:~$ svn co http://svn.code.sf.net/p/chessx/code/trunk chessx

NOTA: in alternativa è possibile scaricare l’ultima versione ufficialmente rilasciata andando nella pagina dei download e cliccando sull’opportuno link che rimanda ai sorgenti dell’ultima release (ad oggi, novembre 2013, è la 1.0.0 “Beetle”).

Finalmente c’è tutto, per compilare i comandi da dare sono i seguenti:

user@host:~$ cd chessx
user@host:~$ qmake
user@host:~/chessx$ sudo auto-apt run make

Se tutto è andato bene, per eseguire il programma, nel caso si sia utilizzata la versione di sviluppo (presa con subversion) dare i seguenti comandi:

user@host:~/chessx$ cd release
user@host:~/chessx/release$ ./chessx

oppure, nel caso si sia presa la versione di rilascio:

user@host:~/chessx$ cd bin
user@host:~/chessx/bin$ ./chessx

Ecco a riprova del mio “successo” la prima schermata dell’applicativo appena lanciato!

 

ChessX - Schermata di avvio
ChessX – Schermata di avvio

Alla prossima puntata!

 

Scacchi su PC GNU/Linux: ChessX

Per chi vuole utilizzare un PC con sistema operativo GNU/Linux semplicemente per giocare a scacchi, o per effettuare operazioni più sofisticate come per esempio analizzare le proprie partite o costruire e gestire un database di partite, purtroppo le scelte non sono molte. Nessuno dei programmi maggiormente utilizzati dai giocatori, amatori e professionisti, hanno una versione per il sistema con il pinguino.

A compensare – molto in parte – provvedono i soliti volenterosi dell’open source che mettono a disposizione diversi programmi dalle caratteristiche che, se non arrivano a competere con quelle dei programmi commerciali, sono sono comunque non disprezzabili.

Il problema principale non sono le “engine”, i motori, da utilizzare per giocare contro il computer o per analizzare le partite (di queste ce ne sono diverse anche molto forti), bensì le GUI e i programmi per mantenere database di partite, cioè il tipo di programmi più apprezzati dai professionisti e dai giocatori di circolo.

Il programma che storicamente ha avuto il ruolo maggiore in questo contesto è Scid. In passato lo ho utilizzato (o meglio ho utilizzato una delle sue varianti più complete, ChessDB), ed è sicuramente un buon programma. Il suo problema maggiore è che il suo sviluppo è ormai fermo da tempo, mentre uno più veniale è che risente di una interfaccia utente oramai piuttosto “antica”.

Premesso che in ogni caso mi sento di consigliare senza problemi i programmi prima citati, a questo giro voglio provare a investire un po’ di tempo per provare a utilizzare un altro programma che oggi risolve almeno in parte i problemi sopra citati e cioè ChessX. L’interfaccia è moderna e c’è un team di sviluppatori che ad oggi lo sta portando avanti (seppur con la lentezza tipica dei progetti open-source sviluppati senza “sponsor” e solo per passione da persone che nella vita “reale” fanno ben altro).

Inizio quindi una serie di articoli su questo argomento. Nella prossima – prima – puntata vedremo come installare il programma su una macchina GNU/Linux a partire dai sorgenti scaricabili dal sito.