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 :

  • L'Universal Shogi Interface (USI), un protocole pour le shōgi[3]
  • L'Universal Chinese Chess Interface (UCCI), un protocole pour le xiangqi

Commandes

modifier

Il y a pas mal de commandes pour communiquer avec un moteur.

Liste des commandes UCI
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.

Commandes optionelles UCI
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
  1. « TOP- UCI Engines », sur www.sdchess.ru, (consulté le )
  2. (en-US) « Lichess embraces blind players with new chess site features », sur SlashGear, (consulté le )
  3. (en) Tord Romstadt, « First draft of the Universal Shogi Interface (USI) », sur www.shogi.net (consulté le )

Articles connexes

modifier

Références externes

modifier