Home

LaMoSca v0.03

L'interfaccia WinBoard

Obiettivo

PosizioneIn questa versione, il programma viene sviluppato per utilizzare WinBoard come interfaccia utente.

Questo richiede che l'input dei comandi sia modificato per poter gestire l'input del gioco oltre che dalla console del computer, anche secondo il protocollo dell'interfaccia. Inoltre è necessario che il software sia in grado di generare autonomamente delle mosse per poter iniziare a giocare a scacchi, anche se con funzionalità limitate.

L'uso del programma

La configurazione di WinBoard

La configurazione dei motori utilizzabili da WinBoard viene descritta nel file "winboard.ini" Ipotizzando di avere compilato il software nella directory "C:\Programmi\LaMoSca\" del computer, sarà necessario aggiornare il file di configurazione con dati del tipo:

/firstChessProgramNames={GNUChess
"GNUChes5 xboard"
"wcrafty-18.10.exe log=off" /fd="C:\Programmi\Crafty\"
"LaMoSca" /fd="C:\Programmi\LaMoSca\"
}
/secondChessProgramNames={GNUChess
"GNUChes5 xboard"
"wcrafty-18.10.exe log=off" /sd="C:\Programmi\Crafty\"
"LaMoSca" /sd="C:\Programmi\LaMoSca\"
}

L'esecuzione da linea di programma

E' possibile scrivere su computer un file batch per eseguire WinBoard passando le informazioni sui motori come parametro. Un esempio di comando per l'esecuzione batch potrebbe essere del tipo:

C:\Programmi\Winboard\Winboard -debug /cp /fcp="wcrafty-18.10.exe log=off" /fd="C:\Programmi\Crafty" /scp="LaMoSca" /sd="C:\LaMosca\"

E' da notare il parametro "-debug" che permette di far generare da WinBoard il file "winboard.debug", nel quale sono riportate tutte le informazioni scambiate durante il gioco dal protocollo instaurato tra l'interfaccia ed i programmi di scacchi.

Il codice

Il protocollo WinBoard

Le informazioni scambiate tra WinBoard ed i motori seguono un protocollo che definisce i comandi ammissibili ed il loro formato. Il protocollo ha più versioni, ma nel programma sarà utilizzata la prima che è la più semplice.

La sequenza principale di comandi è quella per l'avvio del motore all'inizio del gioco, che è:

  • xboard: per attivare il protocollo;
  • new: per resettare la posizione dei pezzi sulla scacchiera;
  • force: per bloccare il software in attesa di completarne la configurazione;
  • black o white: per definire il colore con cui muove il programma;
  • go: per avviare il software.

Durante il gioco, le mosse dell'avversario (umano o secondo motore) vengono passate dall'interfaccia tramite le rispettive coordinate (es.: "e2e4"), mentre il motore comunica le proprie tramite il comando move (es.: "move e2e4").

edit
#
Nc4
Pd4
Kd2
c
Nd7
Ke7
Pe5
.

Altra istruzione utile per le fasi di debug è il comando edit. Con questo comando e' possibile configurare la scacchiera per una specifica posizione, tipicamente per riprodurre situazioni di gioco nelle quali si sono verificati degli errori. Utilizzando WinBoard, possono essere caricate delle posizioni contenute in file di formato ".fen" tramite le voci di menu "File"-"Load Position ...". Per la posizione mostrata in figura, l'output verso il programma di scacchi, analizzabile tramite il file "winboard.debug", è riportata a lato.

Questa sequenza di comandi può essere anche passata al software dalla console del computer (senza WinBoard) o riscrivendola da tastiera o tramite operazione di copia/incolla.

La generazione delle mosse per il programma

In attesa della realizzazione di una funzione di valutazione, che permetta di scegliere la mossa più opportuna in funzione della posizione dei pezzi sulla scacchiera, le mosse del programma di scacchi vengono generate per il momento scegliendone una caso tra quelle pseudolegali possibili.

Download

LaMoSca03.zip (5.58 k)

Da completare

  • generazione di mosse legali;
  • controllo di situazioni di patta;

Da fare

  • valutazione delle posizioni;
  • analisi delle risposte dell'avversario.

Link


Indietro Indice Avanti