Akira Kusumoto
Akira Kusumoto
詰め将棋などを作成できるサイトを作りたくて、Kifu-for-JSを調べていてこのIssueにたどり着きました。 > 盤面編集 JKFPlayerがそもそも編集モードをサポートしていないように見えますが、サポートしていますでしょうか。 試しにKifu-for-JSで`preset: "OTHER"`でPlayerを初期化し、`state.player.shogi.flagEditMode = true;`で編集可能にして動作させようと試みました。 しかし、下記の`JKFPlayer.prototype.inputMove`で呼び出される`Normalizer.normalizeMinimal`がeditModeに対応していないため、colorが強制的に書き換わってしまいます。 - https://github.com/na2hiro/json-kifu-format/blob/master/src/jkfplayer.ts#L277 - https://github.com/na2hiro/json-kifu-format/blob/master/src/normalizer.ts#L20-L24 (Kifu-for-JSかjson-kifu-formatのどちらのリポジトリに対するコメントが適切だったかわかりませんでした :bow: )
> JKFPlayerはJKFの再生と(将棋のルールに従った)入力だけを行うためのもので,盤面編集(ルール外移動)に対応しておらず,その予定もありません. 回答ありがとうございます。承知しました。 > 盤面編集はJKFPlayerから離れて将棋盤そのもののモデルである na2hiro/Shogi.js のメソッドを呼ぶほうが自然と考えています. 特定局面から開始するのはKifu-for-JSで`preset: "OTHER"`で指定すれば出来ることがわかりましたので、考え直すと私の欲しかった盤面編集とはpresetの状態(JSON)を作成するPlayerがあればいいという発想にたどり着きました。 > 再生モードはJKFPlayer,編集モードはShogiを内部のモデルとするようにKifu for JSを変更することを意図したものです. なるほど。 Kifu-for-JSはJKFPlayerとShogi.jsを使ったビューア実装の一例と捉えて、編集モード用のKifu-for-JSを作成した方がいいのかな?と考えていましたが、`編集モードはShogiを内部のモデルとする`という発想はありませんでした。作者ならどういう方向性で実装するのが自然と考えるのかを確認したかったのでコメント頂けて助かりました。 どうやって実現するか検討します。 > ただ編集の要望があるということなので,シンプルな状態でもリリースしようかと思います.必要ならそこからforkしてカスタマイズしていただければと思います. 私の実現したいことはKifu-for-JSそのものでは欲しいUIが異なるため参考実装としての使い方になりますが、もし既にあるならリリースあるいはpull requestにして見える状態にして頂けると助かります。
> 編集の要望があるということなので,シンプルな状態でもリリースしようかと思います.必要ならそこからforkしてカスタマイズしていただければと思います. このbranchをpushして頂くことは可能でしょうか。
ありがとうございます :bow: