Newsgroup: it.hobby.scacchi
Titolo: [OT forse...] programmazione di motore scacchistico

Buongiorno a tutto l'NG.
Posto questa mail nella speranza di un aiuto... (e di non essere
completamente OT)
Avevo bisogno di comunicare da Visual Basic (o altro linguaggio di
programmazione, ma preferisco VB) con un motore scacchistico tipo Crafty,
Fritz, ecc...
Siccome ho visto che in ChessBase, basta aggiungere qualsiasi motore ed il
programma lo riconosce e lo adopera senza problemi, ho supposto che il
protocollo di comunicazione fosse standard e di dominio pubblico.
Qualcuno saprebbe indicarmi come fare a mandare comandi al motore (e quindi
come comunicare)?
Mi rendo conto che è una domanda molto tecnica, specifica e ricca di
contenuto, ma se riusciste a darmi una mano ve ne sarei molto grato.
Un saluto a tutti e grazie in anticipo.
Mauro

Probabilmente quello che ti interessa e` il protocollo di xboard,
trovi tutte le informazioni qui:
http://www.tim-mann.org/xboard/engine-intf.html
ciao,
Stefano
PS: brunetti, ora posso iscrivermi al team di ihs? :)

 
Sicuramente non e' OT: ha a che fare con gli scacchi.
Per quanto riguarda il fattore tecnico, molti dei frequentatori del NG
hanno competenze informatiche professionali, quindi non si spaventa
nessuno.
Nel dettaglio della tua questione pero' io personalmente sono spiacente
di non poterti aiutare ma non dubito che qualcuno lo faccia.
In alternativa posso suggerirti di spulciare il solito google, visto che
il protocollo di comunicazione con i motori di analisi e' sicuramente
aperto e documentato.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Fritz, ecc...
(riporto la risposta che ti ho mandato anche su it.comp.lang.visual-basic)
Il link che ti ha indicato Silvio e' ottimo per le specifiche del protocollo
Winboard, per il quale esistono centinaia di motori compatibili (es. Crafty)
Un altro protocollo diffuso e' quello UCI, le cui specifiche sono qui:
http://www.aarontay.per.sg/Winboard/uciapril.html
Fritz & C. sono DLL che comunicano tramite un protocollo proprietario di
Chessbase, di cui non credo ci siano nulla di pubblico in giro
Per quanto riguarda Winboard, innanzi tutto ti suggerisco di dare un
occhiata al sito del Gruppo Scacchi E Informatica, di cui sono orgoglioso
membro
http://www.gsei.org
Nella sezione download trovi alcuni sorgenti di esempio per la comunicazione
VB -> motore Winboard (tipicamente per creare interfacce verso motori)
oppure Winboard -> motore VB (per fare invece comunicare Winboard o
interfaccia compatibile con un motore VB).
Per la comunicazione del primo tipo trovi anche un componente ActiveX gia'
pronto, per quella del secondo tipo un esempio completo e' nel sorgente del
mio motore LarsenVB, qui:
http://digilander.iol.it/larsenvb
Abbiamo anche una mailing list:
http://groups.yahoo.com/group/g_6
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 PS: brunetti, ora posso iscrivermi al team di ihs? :)
Essendo adesso un postatore ufficiale di IHS, puoi.
Alex


ciao, ho dato uno sguardo alla pagina e mi sembra di essere sulla strada
giusta, visto che ci sono i riferimenti a funzioni e parametri per
colloquiare; l'unico problema (si fa per dire visto che ce ne sono tanti,
tipo che l'inglese lo mastico poco) è che non so come attivare le funzioni
(o richiamare le librerie) da VB.
Ho provato ad installare la cygwin, ma mi sa che sia la strada sbagliata,
visto che mi regala l'interfaccia unix ;(
Forse c'è scritto all'interno della pagina come fare a rendere attive le
funzioni dentro VB, ma proprio non l'ho capito.
ti ringrazio dell'aiuto.
Ciao
Mauro


scusatemi tanto, sono niubbo, non sapevo dove dovevo postare :)


Non c'e' problema.
Per quanto riguarda l'altra domanda, la libreria cygwin serve a tutt'altro,
e non e' necessaria per quello che vuoi fare...
Per poter colloquiare con Winboard, utilizzando i parametri che hai visto
nel documento 'engine-intf.html', devi innanzi tutto predisporre una
comunicazione attraverso i canali di standard input/output; Visual Basic non
li supporta nativamente (sto dando per scontato che tu mi parli di VB6 o
inferiore, perche' 
VB.NET
 e' tutta un'altra faccenda) ma puoi sfruttare le
funzioni dell'API di Windows ReadFile/WriteFile opportunamente redirette.
Come dicevo nel messaggio precedente trovi alcuni stralci di codice nel sito
del Gruppo SEI, mentre per un esempio completo puoi scaricare il sorgente di
LarsenVB



ciao, l'ho scaricato (ed anche il sorgente) e ti dirò che è davvero
interessante; ho dovuto trovare anche winboard (non ci speravo di trovarlo
aggratis nel sito di Tim-mann)
fantastico il sistema ad albero di LarsenVB per catalogare aperture ed
intere partite!!
mi sei stato di un aiuto immenso.
Grazie
Mauro