Универсальный шахматный интерфейс ( UCI ) — это открытый протокол связи , который позволяет шахматным движкам взаимодействовать с пользовательскими интерфейсами . [1] [2]
В ноябре 2000 года был выпущен протокол UCI. Разработанный Рудольфом Хубером и Стефаном Мейер-Каленом , автором Shredder , UCI конкурирует со старым «протоколом связи Chess Engine», представленным в XBoard/WinBoard .
В 2002 году Chessbase , компания по производству шахматного программного обеспечения, продающая Fritz , начала поддерживать UCI, который ранее поддерживался лишь несколькими интерфейсами и движками.
Известно, что по состоянию на 2021 год [обновлять]более 300 двигателей будут напрямую поддерживать UCI.
По своей конструкции UCI назначает некоторые задачи пользовательскому интерфейсу (т. е. уровню представления), которые традиционно выполнялись самим механизмом (на бизнес-уровне). [ нужна цитата ]
В частности, обычно ожидается, что дебютная книга будет обрабатываться пользовательским интерфейсом путем простого выбора ходов для игры до тех пор, пока она не закончится, и только затем запускать движок для расчета в полученной позиции. UCI не указывает какой-либо формат диска для дебютной книги. Различные пользовательские интерфейсы обычно имеют свои собственные форматы. [ нужна цитата ]
Хотя пользовательский интерфейс также может взять на себя ответственность за обработку баз таблиц финальной игры , возможно, лучше это сделать в самом движке, поскольку наличие информации о базе таблиц может быть полезно для рассмотрения возможных будущих позиций. [3]
Протокол UCI Стефана-Мейера Калена в Shredder использует вариант длинной алгебраической записи ходов. «Нулевое перемещение» из движка в графический интерфейс должно быть отправлено как 0000. [4]
Параметр uci_limitstrength сообщает движкам с этой функцией играть на более низком уровне. Параметр uci_elo определяет рейтинг Эло , на котором движок будет стремиться играть. Движки, реализующие uci_elo, включают Delfi , Fritz , Hiarcs , Houdini , Junior , Rybka , Shredder , Sjeng и Stockfish .
UCI был модифицирован для игры в некоторые варианты шахмат . Некоторые из них: [5]
Каждый из этих протоколов может также определять варианты нотации портативных игр (PGN) и нотации Форсайта-Эдвардса (FEN) . Говорят, что XBoard CECP требует гораздо меньше изменений для поддержки вариантов. [5]