Node.js、いろいろあるけどspawnを使えばいいらしいのとXBoardのメモ

Electronではspawnを使うことでプロセス間通信はできたので、
一旦これを使えばいいらしい。

とりあえず前に動かしたFairy-Stockfishに対応させようと思います。
一旦、XBoardプロトコル?での対応になりそう (たぶん簡単なので)
簡単であってほしい...。
ちゃんと仕様を読んだほうが良さそうだけど、一旦雑な対応になりそうです。
別件があり、着手できるのは土曜になっちゃうかもな...。

メモ:

座標は左下がa1

a5 ... e5

... ... ...

a1 ... e1

着手はmove a1e1とfrom toを指定
駒を打つ場合は S@e1 と駒の種類と@をform部分に指定する。
たぶん、王K, 飛車R、角B, 金G, 銀S, 歩Pで駒の種類を表す。
成る場合は e2e1+ と+で成りを表す。

csa形式の棋譜の着手は成りをプログラム側が動く前の駒の種類で
判定する必要があり、こういった形式のほうが良い気がした。

ファイル読み込み機能を実装

f:id:hizz_gi:20200505225709p:plain

のたりのたりと実装していますが、csa形式?のファイルを
読み込めるようにしました。
あとはリストで着手を選択するとその局面を表示する機能などを追加しています。

公式?のビューワだとバージョン部分を書き換えないといけなく
確認が少し面倒でした...。
たぶんより新しいビュワーがあると思うんですが、それまでたどり着けなかったです。

これまでの大会で記録されている棋譜をやっと表示できるようになって
いろいろ見てみたんですが、強いプログラム同士だと100手前後ぐらいまで
なる場合が多いようですね...。

やっと次はプログラムとのつなぎこみかな。

まずは棋譜の記録機能から

f:id:hizz_gi:20200504205723p:plain

棋譜を記録できるようにしました。次は棋譜の読み込みかな...
ちゃんと実装する気はないので、駒の移動には動かし元と先を表示するようにしています。右側にはいずれ、時間を記載するようにする予定... それまで余白を取り除いてもいいかも...

右、左とか... 無理...