解説
UCIはUniversal Chess Interfaceの略で、ユーザーインターフェースとの通信方法を定めるオープンプロトコルである。グラフィカルインターフェースは盤、時計、操作部を表示し、エンジンは指し手と評価を計算する。UCIにより、別々の開発者が作った製品でも連携できる。
典型的なやり取り
- インターフェースがエンジンを起動し、uciを送る。
- エンジンが識別情報、設定可能なオプション、uciokを返す。
- インターフェースはオプションを変更でき、isreadyで初期化完了を確認する。
- インターフェースが初期配置またはをpositionで送り、任意で指し手を続ける。
- goコマンドで時間、深さなどの制限を持つ探索を始める。
- 計算中にエンジンはinfo行を送ることができ、最後にbestmoveと選んだ手を返す。
UCIの手は通常e2e4のように出発マスと到着マスで書く。プロモーションはe7e8qのように選んだ駒を加える。通常の対局を読むとは異なる形式である。
UCIが定めるのは通信言語であり、エンジンの強さや画面の外観ではない。とも異なる。似た問題を解決するが、アダプターなしではコマンドを交換できない。
よくある混同
UCIとエンジン
UCIは手を計算しない。対応エンジンへ計算を依頼するプロトコルである。
UCIとCECP
別のプロトコルであり、一方に対応するエンジンが他方を理解するとは限らない。
用語を見る出典
- 1.UCI Protocol, Shredder Chess
- 2.UCI Protocol and Stockfish Commands, Stockfish
