解説
UCIはUniversal Chess Interfaceの略です。盤と操作部分を表示するプログラムであるグラフィカル・インターフェースと、手を計算するプログラムであるを通信させるテキストプロトコルです。UCIオプションは、メモリー容量、処理スレッド数、Chess960対応など、エンジンがインターフェースへ公開する設定です。
インターフェースがUCIセッションを開始すると、エンジンは各オプションの名前、型、必要に応じてデフォルト値、制限、選択肢を通知します。インターフェースはその記述を画面上の操作部品へ変換し、後でsetoptionコマンドを送って値を変更できます。利用可能なオプションはエンジンとバージョンによって異なります。
UCIの5つのオプション型
- check: trueまたはfalseの値で、通常はチェックボックスとして表示されます。
- spin: 最小値と最大値の範囲に制限された整数です。
- combo: 事前定義された集合から1つを選びます。
- button: 内部テーブルの消去など、保存値を持たない1回限りの操作です。
- string: ファイルパスなどの自由なテキストです。
オプションはチェスのルールでも、普遍的な互換性の保証でもありません。似た機能でも、2つのエンジンが異なる名前、範囲、値を使うことがあります。制御ソフトウェアは固定一覧を仮定せず、各エンジンが実際に通知した内容を読むべきです。
よくある混同
UCIとUCIオプション
UCIは通信プロトコル全体です。UCIオプションは、そのプロトコルを通じて公開される設定の1つです。
出典
- 1.UCI Protocol and Stockfish Commands, Stockfish
- 2.UCI Protocol, backscattering.de
