USI対応の将棋エンジン — Zig言語で実装
ZigJig は Zig 言語 (version 0.15.2) で書かれたUSI対応将棋エンジンです。
棋力は ShogiGUI 付属の gpsfish と同程度を目指しています。
通常ビルドでは nn.bin をファイルから読み込みます。評価関数のファイルを実行ファイルに埋め込まない場合は、nn.bin を実行ファイルと同じ場所に配置してください。
src/config.zig の nnue_weight_embedded で、評価関数ファイルを実行ファイルに埋め込むかどうかを切り替えできます。埋め込む場合は、NNUE標準の評価関数ファイル nn.bin を以下のパスに配置してください。
src/nets/nn.bin
以下のコマンドを実行すると、zig-out/bin/ に実行ファイルが生成されます。
zig build -Doptimize=ReleaseFast -Dcpu=nativeAndroid向けにビルドする場合は、src/nets/kp.bin が必要です。
zig build -Dtarget=aarch64-linux-android -Doptimize=ReleaseFast -Dnnue_feature=kp
zig build -Dtarget=x86_64-linux-android -Doptimize=ReleaseFast -Dnnue_feature=kpMIT License
Zig 標準ライブラリのライセンスに準拠しています。
Zig での実装にあたり、チェスエンジン Avalanche を参考にしました。
コードの大部分はAIによって自動生成されており、バグ修正やコメントの追記において一部人手が加わっています。