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 , 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. Le protocole est également employé sur le serveur Lichess.

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 L'Universal Chinese Chess Interface (UCCI), un protocole pour le xiangqi

Commandes Il y a pas mal de commandes pour communiquer avec un moteur. +Liste des commandes UCICommandeUtilisationDescriptionRéponsequit quitFerme le moteur d'échec.uci uciDis au moteur de passer en mode UCI.uciokucinewgame ucinewgameUtiliser pour dire au moteur que la prochaine position vient d'une partie différente.isready isreadyUtilisé pour synchroniser le moteur. Utilisé après une commande pouvant prendre du temps.readyoksetoption 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 stopDis au moteur d'arrêter de réfléchir dès que possible mais après 5 secondes.ponderhit ponderhitDis au moteur que le joueur a joué le mouvement attendu. Il y a aussi des commandes optionnelle. +Commandes optionelles UCICommandeUtilisationDescriptionRéponsebench bench [ttsize] [threads] [limit] [fenFile] [limitType]Lance un benchmark du moteur.Test dataspeedtest speedtest [threads] [hash (MiB)] [runtime (s)]Mesure la vitesse que prend l'ordinateur pour exécuter le moteur.Test datad dRenvoie une représentation ASCII de l'état actuel de l'échequier.Tableau ASCIIeval evalRenvoie l'évalution de l'échequier.Évaluationcompiler compilerRenvoie les informations du compilateur du moteur.Infos du compilateurexport_net export_net [filenameBigNet] [filenameSmallNet]Exporte le réseau actuel dans un fichier.flip flipRenvoie le côté de mouvement.help helpDans 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 Githublicense licenseÉquivalant à la commande help.Les informations à propos du moteur et le lien vers le Github

Notes et références

Articles connexes Moteur d'échecs Chess Engine Communication Protocol

Références externes Spécifications techniques du protocole UCI Une interface supportant le protocole UCI

Catégorie:Protocole de communication *