Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sunfish-shogi/usi-engine-delayer

USI (Universal Shogi Interface) プロトコルのコマンド送信を遅延させるツール
https://github.com/sunfish-shogi/usi-engine-delayer

shogi usi

Last synced: 3 days ago
JSON representation

USI (Universal Shogi Interface) プロトコルのコマンド送信を遅延させるツール

Awesome Lists containing this project

README

        

# usi-engine-delayer

usi-engine-delayer は USI (Universal Shogi Interface) プロトコルのコマンド送信を意図的に遅延させるツールです。

将棋の GUI アプリで USI プロトコル関連の動作検証を行う際、必ずしも CPU に負荷をかけてより優れた指し手を追及する必要はありません。
かといって瞬時に応答するプレイヤーでは、思考時間が長いケースの動作検証として十分ではありません。
そこでこのツールではコマンドの送信を意図的に遅延させることで、マシンに負荷をかけずに思考時間を延長します。

## 使用方法

### 必要なもの

Go 言語実行環境

### インストール

```
go install github.com/sunfish-shogi/usi-engine-delayer@main
```

### 引数で設定値を渡す場合

- `-exe` - エンジンのパスを指定します。
- `-delay` - bestmove コマンドの遅延秒数を指定します。
- `-name` - エンジン名を上書きする場合にその名前を指定します。

エンジンと同じディレクトリに bat ファイルを設置する場合は、例えば次のように記述します。

```bat
usi-engine-delayer -exe %~dp0Lesserkai.exe -delay 5
```

macOS や Linux でシェルスクリプトを設定する場合は次のように記述します。

```sh
#!/bin/bash -eu
$HOME/go/bin/usi-engine-delayer -exe $(cd $(dirname $0); pwd)/YaneuraOu -delay 3
```

### 設定ファイルを使用する場合

`-config` で設定ファイルのパスを指定します。省略するとカレントディレクトリの `config.json` を参照します。
設定ファイルは以下のように記述します。

```json
{
"exePath": "C:\\Users\\GuestUser\\MyEngines\\Lesserkai.exe",
"delaySeconds": 5,
"name": "Lesserkay Delay-5s"
}
```

なお、 `-exe` オプションが指定された場合は設定ファイルを参照しません。