他の人が言ったように、UCIはあなたが望むAPIです。プロトコルの完全な仕様は次のとおりです(zipファイルはテキストファイルに抽出されます):http : //download.shredderchess.com/div/uci.zip
実際には非常に単純明快で、UCIエンジンはstdin、stdout、stderrを介してプレーンテキストで応答および応答する必要があります。実際、プラットフォーム上の任意のUCIエンジンの実行可能バイナリを起動し、UCIコマンドを手動で発行できるはずです。
UCIは、GUIまたは他のエンジンからの指示を容易にし、特定のエンジンに、特定のPGNファイルの分析(GUIまたは同様のフロントエンド、ロームーブによるロード)の分析など、実行したいことをすべて実行するように指示します次に、拡張代数形式でエンジンに供給されます(e4がe2e4になるなど)。要件の2番目と3番目のポイントはUCIの標準ですが、それらをサポートするかどうかは各エンジン開発者に任されています(これらの要件がどれだけ無駄がないかを考えると、ほとんどが要件です)。
コマンドラインで実行中のUCIの例を次に示します。
bash-3.2$ ./stockfish-5-64
Stockfish 5 64 by Tord Romstad, Marco Costalba and Joona Kiiski
uci
id name Stockfish 5 64
id author Tord Romstad, Marco Costalba and Joona Kiiski
option name Write Debug Log type check default false
option name Write Search Log type check default false
option name Search Log Filename type string default SearchLog.txt
option name Book File type string default book.bin
option name Best Book Move type check default false
option name Contempt Factor type spin default 0 min -50 max 50
option name Mobility (Midgame) type spin default 100 min 0 max 200
option name Mobility (Endgame) type spin default 100 min 0 max 200
option name Pawn Structure (Midgame) type spin default 100 min 0 max 200
option name Pawn Structure (Endgame) type spin default 100 min 0 max 200
option name Passed Pawns (Midgame) type spin default 100 min 0 max 200
option name Passed Pawns (Endgame) type spin default 100 min 0 max 200
option name Space type spin default 100 min 0 max 200
option name Aggressiveness type spin default 100 min 0 max 200
option name Cowardice type spin default 100 min 0 max 200
option name Min Split Depth type spin default 0 min 0 max 12
option name Threads type spin default 1 min 1 max 128
option name Hash type spin default 32 min 1 max 16384
option name Clear Hash type button
option name Ponder type check default true
option name OwnBook type check default false
option name MultiPV type spin default 1 min 1 max 500
option name Skill Level type spin default 20 min 0 max 20
option name Emergency Move Horizon type spin default 40 min 0 max 50
option name Emergency Base Time type spin default 60 min 0 max 30000
option name Emergency Move Time type spin default 30 min 0 max 5000
option name Minimum Thinking Time type spin default 20 min 0 max 5000
option name Slow Mover type spin default 80 min 10 max 1000
option name UCI_Chess960 type check default false
uciok
isready
readyok
quit
bash-3.2$
私が出したコマンドはuci、isready、quitでした。
UCIコマンドを利用するには、基本的に2つの主要な選択肢があります。既存のインターフェース(ChessX、Arena、他のホストなど)を使用することも、独自のコードを記述してエンジンまたはエンジンのグループに命令を発行することもできます。UCIエンジンにアクセスするためのPythonラッパーはすでにあると思いますが、再確認する必要があります。間違いなくpython-chess(インポートチェス)とpychess(インポートチェス)がありますが、それらの機能の範囲を思い出せません。pychessが潜んでいる場所(おそらくgithubまたはgoogleコード)を思い出すことはできませんが、python-chessはpipでインストールできます。