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