まじで全然更新できてないな

去年から耳鳴りとか起きちゃってたり仕事のほうが忙しかったりで、
5五将棋のプログラム作成が中途半端なところで止まっちゃってますが、
ちょこちょこと進めていければいいなと思ってます。

第13回 UEC杯 (結構長く続いてるんだな) は Fairy-Stockfish と ShioRamen の
同時優勝 ? だったようですね。
両者の対戦では先手が共に負けになっていて、強いプログラム同士では
先手で勝つことが困難であることがわかってきているようですね。

ぜんぜん更新してなかったな

仕事が忙しく、残念ながらあまり手をつけられていない...
とりあえずマイルストーン的なものを設けるかな...

あと、5五将棋に関して新しい報告がされたようです。
とりあえず読んでみます。(買うのに手間取った & 現在も問い合わせ中...)

https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=204957&item_no=1&page_id=13&block_id=8

ちらっと読んだ感じ、できることはまだ多く残っていそうな印象だった (*´ω`*)

中央の飛車の利きを求めるとき

大学院時代に趣味で実装したことがあるんですが、
今実装し直していみるといろいろ忘れていることが多い... (;´∀`)
例えばbitboardで3三にある飛車の利きを出す際に使用するマスクは端を省略できるとか...
省略しなかった場合、どちらも同じ利き情報 (厳密にはattack bitboardなので若干違う) となってしまうからなんですが。
当時のことを思い出しながらまったり実装してしまう...。

あと局面って英語でなんだっけっていうのも忘れてた... positionや...

ぼちぼち

f:id:hizz_gi:20200523233645p:plain

ぼちぼちプログラムを作っていっています。
GUIがあるのであまりコンソール用の表示は必要ないんですが、
上記のように現在の盤面を表示するところから作っています。
やっぱこういうのテンションがあがりますね。

外部プログラムの入出力に対応したけれど...?

外部プログラムの入出力に対応してFairy-Stockfishと
対局できるようになり、やっとプログラムの開発に着手できるかなと
いった感じになったんですが、試しにiOSのとあるプログラムと
対戦させてみたところ、Fairy-Stockfish側が負けてしまい、
設定がなにかおかしそうな雰囲気を感じています...。
Fairy-Stockfishが即指しのような感じになってしまっているので、
XBoardプロトコル?での持ち時間の設定を見る必要がありそうです。

 

追記:

普通に対局開始前に st 3 とか設定すれば
即指ししなくなり、勝つようになりました。(*´ω`*)

timeというコマンドもあってちゃんと仕様を読んだほうが良さそうです...

参考リンク: https://www.gnu.org/software/xboard/engine-intf.html

Node.jsでnode側と描画処理側とのやりとりメモ

正直、行き当たりばったりで動かしているので、
対応があっているのか不明だけど、Nodeの書き方を一旦メモ

 

Node側から描画処理側の処理を呼ぶ場合

Node側
BrowserWindow.getFocusedWindow()、focusedWindow.webContents.send(チャンネル名, データ)
描画側
ipcRenderer.on(チャンネル名, (event, データ))
 

描画処理側からのNodeの処理を呼ぶ場合

Node側
ipcMain.on(チャンネル名,(event, データ))

描画側
ipcRenderer.send(チャンネル名, データ)

goは一度でいいのか...

goコマンドは一度送ったあとは送る必要がないらしい。
なんでこうなっているかは不明だ...
着手を送ってからgoを送るまでの空白の時間をなくすためかな...?

https://github.com/ianfab/Fairy-Stockfish/wiki/Usage#command-line

対局開始前にプログラム側は自身が先手なのか後手なのか知る術がないように思うけど、どうなんだろうか...