na2hiro / Kifu-for-JS

JavaScriptで動く将棋の棋譜再生盤とそのブックマークレット `kifu-for-js`、JSON棋譜フォーマット(JKF)の定義とKIF, KI2, CSAからの変換ライブラリ `json-kifu-format`、将棋のモデル`shogi.js`を含むmonorepo
MIT License
112 stars 16 forks source link

外部スクリプトを用いた棋譜更新対応 #27

Closed mizar closed 8 years ago

mizar commented 8 years ago

外部のスクリプトから更新棋譜データの流し込み、最新の局面の表示などの制御が出来るようにしたい。

以下のような2つの方向性は如何でしょうか。

na2hiro commented 8 years ago

ご提案ありがとうございます.確かに,拡張性のためにはそういったモデルに対する操作を外部に露出するということが必要ですね.自分自身でも,開発している別のプロジェクトをバックエンドとして接続する際にはこのままでは難しいと感じていました. https://github.com/na2hiro/Shogitter.hs/issues/4

箇条で挙げていただいたように実装しようと思います.

より良い形としては,現在loadで提供している「定期的に再読み込みをする」というものをプラグインとして外からくっつける形がありそうです.loadがない場合は自動更新間隔のドロップダウンも意味が無いので,UIと再読み込みのコントローラを一緒に挿入できるフレームワークを考えられればと思います.まあ,時間がかかるとよくないのでこれはfuture workになるかもしれませんが.

mizar commented 8 years ago

必ずしも先述の通りの実装で無くとも、盤面構築系(load,loadString)の返り値として、その盤面操作用のオブジェクトを返し、そこから各種情報の読み書き、更新系の操作などを行えるようにしても良いかもしれませんね。

na2hiro commented 8 years ago

とりあえず 7d5b72eb32139bc1af55ac6443949761f06d6d57 でコールバックを読み込めるように(loadloadCallbackを使う例になっています), e007c6ad6a0556d60b7aa78e72d3facca307871f でコントローラを返すようにしてみました. より細かい操作については現状少し書きづらく,Reduxで書きなおしてからのほうが良さそうに感じました.

mizar commented 8 years ago

対応ありがとうございます。ひとまず このようなお遊び ができるようになりました。 Reduxでの書き直しも期待しております。