ぜんぜん更新してなかったな
中央の飛車の利きを求めるとき
大学院時代に趣味で実装したことがあるんですが、
今実装し直していみるといろいろ忘れていることが多い... (;´∀`)
例えばbitboardで3三にある飛車の利きを出す際に使用するマスクは端を省略できるとか...
省略しなかった場合、どちらも同じ利き情報 (厳密にはattack bitboardなので若干違う) となってしまうからなんですが。
当時のことを思い出しながらまったり実装してしまう...。
あと局面って英語でなんだっけっていうのも忘れてた... positionや...
外部プログラムの入出力に対応したけれど...?
外部プログラムの入出力に対応して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
対局開始前にプログラム側は自身が先手なのか後手なのか知る術がないように思うけど、どうなんだろうか...