将棋評価値バーを作った

将棋評価値バーの作り方に興味がある方は下記シリーズを参照下さい。

https://qiita.com/TETSURO1999/items/aa8817e3078cd27d3813

# 評価値バーについて

ShogiGUI や将棋所の検討モード時に，別ウィンドウとして評価値および期待勝率を表示するプログラムです。将棋エンジンは同封していません。水匠あるいは Háo などお好みの将棋エンジンをダウンロードして使って下さい。

デフォルトの画面デザインは，たややん氏作成のものに限りなく寄せています。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490655/550bdb01-91e6-5875-52c5-f91a87202dd0.png" alt="デフォルト画面">

オプションでプレイヤー名を表示することもできます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490655/ccf31e71-cfc0-791b-92bb-8b624cb00722.png" alt="プレイヤー名表示モード">

たややん氏の公開した評価値バーについてはコチラを参照下さい。

https://www.youtube.com/watch?app=desktop&v=32WBQUs4u-U

また朝日新聞社の尾崎正典さんの解説記事も分かり易いでしょう。

https://qiita.com/masanori0/items/24874184eaf089b844e8

# 評価値バーのインストール方法

評価値バーはソースコードで配布しています。なので利用者の皆さんが自分でコンパイルして実行プログラムを作成する必要がありますが，Windows に備え付けの C# コンパイラを使用するので，別途開発ツールをインストールする必要はありません。評価値バーのソースコード一式は下記のアドレスからダウンロードして下さい。

[evalbar.zip（google drive）](https://drive.google.com/file/d/1Q9FBvT2PfLhwomq8dgkCbe7piTv-9C7s/view?usp=drive_link)

ダウンロードした zip ファイルを展開すると以下の８つのファイルが現れます。

* build.cmd
* copying.txt
* evalbar.cs
* notes.txt	
* player.txt
* readme.txt
* setup.hta
* shogi.ico

このうち build.cmd をダブルクリックすると下図のようにコマンドプロンプトのウィンドウが立ち上がり，evalbar.exe という実行ファイルが作成されます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490655/f35a17ce-37a7-6e1b-faa2-3a0872e2de5c.png" alt="コンパイル時の動作">

# 評価値バーの初期設定

setup.hta をダブルクリックして評価値バーのセットアップヘルパーを起動します。ヘルパーを起動すると将棋エンジンの名前とパスを入力します。ここで入力する将棋エンジンの名前とはあくまで評価値バーに表示される名前であり，ShogiGUI に表示される名前とは別のものです。入力を終えると「保存」ボタンを押して下さい。そうするとカレントディレクトリに settings.ini という設定ファイルが作成されます。settings.ini が作成されたのを確認したら「終了」ボタンを押して下さい。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490655/01caca67-4223-5242-d4b2-342887d59b83.png" alt="セットアップヘルパーの画面">

settings.ini は単なるテキストファイル（文字コードは UTF-8）なので，お好みのテキストエディタで編集しても構いません。なお，settings.ini は evalbar.exe と同じディレクトリに置く必要があります。もしも evalbar.exe と同じディレクトリに settings.ini が存在しない場合

* 将棋エンジンの名前：水匠5
* 将棋エンジンのパス：Suisho5.exe

と解釈します。

# ShogiGUI への登録

ShogiGUI へ evalbar.exe を登録すると評価値バーを使用できるようになります。なお，評価値バーで使用する将棋エンジンを変更した場合，いったん ShogiGUI への登録を削除してから再登録して下さい。ShogiGUI は将棋エンジンのオプション設定を保存していますが，評価値バーで将棋エンジンを切り替えたことを ShogiGUI は分からないため，設定が不整合になる場合があるからです。

# 評価値バーの使い方

下記の３つのモードを右クリック（コンテキストメニュー）で切り替えられるようにしました。コントロールキーでも切り替え可能です。

## (a) プレイヤー名表示モード（Ctrl-P キー）
プレイヤー名を表示します。プレイヤー名は ShogiGUI のウィンドウのタイトルバー文字列（下図の場合は，藤井聡太竜王名人 対 三枚堂達也七段 2023/06/19 11:01:53 - ShogiGUI）から抜き出しています。プレイヤー名（姓と名と段位など）の間には空白を入れないで下さい。ShogiGUI では対局モードにするとプレイヤーの名前を設定することができます。ShogiGUI でプレイヤー名を設定していない場合，評価値バーでは単に☗先手，☖後手とします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490655/c9e5a3e5-749d-ebbe-7595-47a06c35c689.png" alt="ShogiGUIの画面">

## (b) 左右反転モード（Ctrl-R キー）
デフォルトでは先手は左側，後手は右側に表示されます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490655/a271571d-e5f8-f818-e9f2-a4c6c7a51620.png" alt="デフォルト">
左右反転モードにすると左右が入れ替わります。勝率はあくまでも先手基準で表示されます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490655/52037c6e-8412-733f-d645-b8ce15b2b679.png" alt="左右反転モード">


## (c) 常に最前面に表示されるモード（Ctrl-T キー）
評価値バーのウィンドウが常に最前面に表示されるようになります。

# 注意事項

評価値バーは GPL3 にて公開しています。

USI プロトコルの解析や指し手の表記方法などは独自解釈によるため，サポートが不完全あるいは解釈を誤っているかもしれません。