Universal Chess Interface
protocole de communication
L'Universal Chess Interface (UCI) est un protocole de communication qui permet à un moteur d'échecs de communiquer avec une interface utilisateur.
Le protocole est conçu par Rudolf Huber et Stefan Meyer-Kahlen (en), le créateur de Shredder, en novembre 2000, et peut être considéré comme un rival du protocole XBoard/WinBoard. Comme ce dernier, l'UCI est libre de droits.
En 2019, plus de 50 moteurs d'échecs prennent en charge l'UCI, dont Rybka, Fruit et Houdini[1]. Le protocole est également employé sur le serveur Lichess[2].
L'UCI est à la base d'autres protocoles destinés à des variantes d'échecs, dont :
Commandes
modifierIl y a pas mal de commandes pour communiquer avec un moteur.
| Commande | Utilisation | Description | Réponse |
|---|---|---|---|
| quit |
quit |
Ferme le moteur d'échec. | |
| uci |
uci |
Dis au moteur de passer en mode UCI. | uciok |
| ucinewgame |
ucinewgame |
Utiliser pour dire au moteur que la prochaine position vient d'une partie différente. | |
| isready |
isready |
Utilisé pour synchroniser le moteur. Utilisé après une commande pouvant prendre du temps. | readyok |
| setoption |
setoption name <id> [value <x>] |
Utilisé pour changer les paramèttres internes du moteur. | |
| position |
position [fen <fenstring> | startpos] moves <movement 1> ... <mouvement i> |
Utilisé pour donner la position actuel au moteur. | |
| go |
go [infinite | depth <profondeur> | nodes | mate] searchmoves <mouvement 1> ... <mouvement i> ponder wtime <x> btime <x> winc <x> binc <x> movestogo <x> nodes <x> lovetime <x> perft <x> |
Dis au moteur de commencer à réfléchir. | bestmove <mouvement> ponder <réponse attendue> |
| stop |
stop |
Dis au moteur d'arrêter de réfléchir dès que possible mais après 5 secondes. | |
| ponderhit |
ponderhit |
Dis au moteur que le joueur a joué le mouvement attendu. |
Il y a aussi des commandes optionnelle.
| Commande | Utilisation | Description | Réponse |
|---|---|---|---|
| bench |
bench [ttsize] [threads] [limit] [fenFile] [limitType] |
Lance un benchmark du moteur. | Test data |
| speedtest |
speedtest [threads] [hash (MiB)] [runtime (s)] |
Mesure la vitesse que prend l'ordinateur pour exécuter le moteur. | Test data |
| d |
d |
Renvoie une représentation ASCII de l'état actuel de l'échequier. | Tableau ASCII |
| eval |
eval |
Renvoie l'évalution de l'échequier. | Évaluation |
| compiler |
compiler |
Renvoie les informations du compilateur du moteur. | Infos du compilateur |
| export_net |
export_net [filenameBigNet] [filenameSmallNet] |
Exporte le réseau actuel dans un fichier. | |
| flip |
flip |
Renvoie le côté de mouvement. | |
| help |
help |
Dans Stockfish, cette commande renvoie les informations à propos du moteur et le lien vers le Github. | Les informations à propos du moteur et le lien vers le Github |
| license |
license |
Équivalant à la commande help. | Les informations à propos du moteur et le lien vers le Github |
Notes et références
modifier- ↑ « TOP- UCI Engines », sur www.sdchess.ru, (consulté le )
- ↑ (en-US) « Lichess embraces blind players with new chess site features », sur SlashGear, (consulté le )
- ↑ (en) Tord Romstadt, « First draft of the Universal Shogi Interface (USI) », sur www.shogi.net (consulté le )