설명
UCI는 Universal Chess Interface의 약자다. 보드와 조작 요소를 보여 주는 그래픽 인터페이스가 수를 계산하는 프로그램인 과 통신할 수 있게 하는 텍스트 프로토콜이다. UCI 옵션은 메모리 크기, 처리 스레드 수, Chess960 지원처럼 엔진이 인터페이스에 공개하는 설정이다.
인터페이스가 UCI 세션을 시작하면 엔진은 각 옵션의 이름과 유형을 알리고, 필요한 경우 기본값, 제한 범위 또는 허용 선택지도 함께 보낸다. 인터페이스는 이 설명을 화면의 조작 요소로 바꿀 수 있으며, 나중에 setoption 명령을 보내 값을 변경한다. 사용할 수 있는 옵션은 엔진과 버전에 따라 달라진다.
다섯 가지 UCI 옵션 유형
- check: 참 또는 거짓 값으로, 보통 체크박스로 표시된다.
- spin: 최솟값과 최댓값 사이로 제한되는 정수.
- combo: 미리 정의된 집합에서 하나를 선택하는 값.
- button: 내부 테이블 지우기처럼 저장되는 값 없이 한 번 실행되는 동작.
- string: 파일 경로 같은 자유 텍스트.
옵션은 체스 규칙도 아니고 보편적 호환성을 보장하는 약속도 아니다. 두 엔진이 비슷한 기능에 서로 다른 이름, 범위, 값을 사용할 수 있다. 제어 소프트웨어는 고정 목록을 가정하지 말고 각 엔진이 실제로 알리는 내용을 읽어야 한다.
자주 혼동하는 개념
UCI와 UCI 옵션
UCI는 전체 통신 프로토콜이고, UCI 옵션은 그 프로토콜을 통해 공개되는 개별 설정 하나다.
출처
- 1.UCI Protocol and Stockfish Commands, Stockfish
- 2.UCI Protocol, backscattering.de
