Interfaz Universal de Ajedrez , la enciclopedia libre
Una interfaz universal de ajedrez (UCI) es un protocolo de comunicación abierto que permite a los motores de ajedrez comunicarse con las interfaces de usuario.[1][2]
Historia
[editar]En noviembre de 2000, se publicó el protocolo UCI. Diseñado por Rudolf Huber y Stefan Meyer-Kahlen, el autor de Shredder, UCI compite con el antiguo "Protocolo de comunicación del motor de ajedrez" introducido con XBoard/WinBoard.
En 2002, ChessBase, la compañía de software de ajedrez que comercializa Fritz, comenzó a respaldar el protocolo UCI, que anteriormente solo contaba con algunas interfaces y motores.
A partir de 2007, se sabe que más de 100 motores son compatibles directamente con UCI, incluyendo a los mejores motores disponibles en el momento.[3][4][5]
- Stockfish 12 analizando una posición sin interfaz gráfica de usuario, mostrando jugadas a través del protocolo UCI en modo texto.
- Stockfish 12 analizando la misma posición de la izquierda, mostrando análisis en una interfaz gráfica de usuario a través del protocolo UCI.
Diseño
[editar]Por diseño, UCI asigna algunas tareas a la interfaz de usuario (es decir, la capa de presentación) que tradicionalmente han sido manejadas por el propio motor (en la capa empresarial).[cita requerida]
En particular, generalmente se espera que la interfaz de usuario maneje el libro de aperturas, simplemente seleccionando movimientos para jugar hasta que esté fuera del libro, y solo luego iniciando el motor para el cálculo en la posición resultante. UCI no especifica ningún formato en disco para el libro de apertura. Las diferentes interfaces de usuario suelen tener sus propios formatos propietarios.[cita requerida]
Si bien la interfaz de usuario también puede asumir la responsabilidad de manejar las bases de tablas de finales, esto se maneja mejor en el propio motor, ya que tener información de la base de tablas puede ser útil para considerar posibles posiciones futuras.[6]
El protocolo UCI de Stefan-Meyer Kahlen en Shredder utiliza una notación algebraica larga para los movimientos. Un "nullmove" del motor a la GUI debe enviarse como 0000.[7]
- Ejemplos
Funciones
[editar]El parámetro uci_limitstrength le dice a los motores con esta característica que jueguen a un nivel más bajo.[8] El parámetro uci_elo especifica la clasificación Elo a la que el motor apuntará a jugar.
Variantes
[editar]La UCI ha sido modificada para jugar algunas variantes de ajedrez. Algunos de estos son:[9]
- Universal Shogi Interface (USI), variante para el shogi;[10]
- Universal Chinese Chess Interface (UCCI), variante para el xiangqi.[11]
Cada uno de estos protocolos también puede definir variantes de PGN y FEN. Se dice que XBoard CECP requiere muchos menos cambios para admitir variantes.[9]
Véase también
[editar]Referencias
[editar]- ↑ «Chess engines». Business World Online. 6 de abril de 2017. Archivado desde el original el 28 de enero de 2021. Consultado el 14 de junio de 2018.
- ↑ Torres, JC (23 de junio de 2014). «Lichess embraces blind players with new chess site features». SlashGear. Consultado el 14 de junio de 2018.
- ↑ Daniel Muñoz. «Los mejores módulos de ajedrez gratis 2020». https://thezugzwangblog.com/.
- ↑ «ChessBase 15 paso por paso (6): módulos UCI».
- ↑ ««Dragon», el recién lanzado mejor motor de ajedrez posicional de Komodo».
- ↑ Chess Life. United States Chess Federation. 2003.
- ↑ «UCI protocol». wbec-ridderkerk.nl. Consultado el 14 de junio de 2018.
- ↑ «The MadChess UCI_LimitStrength Algorithm».
- ↑ a b Evert. «UCI protocol for chess variants». TalkChess.com.
- ↑ «The Universal Shogi Interface (USI)». hgm.nubati.net.
- ↑ «中国象棋电脑应用规范(五):中国象棋通用引擎协议». www.xqbase.com.
Enlaces externos
[editar]- Lista de motores UCI (a febrero de 2014) Archivado el 22 de junio de 2022 en Wayback Machine.
- Descarga de especificaciones técnicas de UCI