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

Kifu for Winのような盤面編集 #6

Open na2hiro opened 9 years ago

na2hiro commented 9 years ago

盤上の駒のクリックやドラッグ等により,

などができるようにする.いつかやる.

na2hiro commented 9 years ago

以下は既に作成.

以下はビューアとは別物にすべきかも

bluerabbit commented 8 years ago

詰め将棋などを作成できるサイトを作りたくて、Kifu-for-JSを調べていてこのIssueにたどり着きました。

盤面編集

JKFPlayerがそもそも編集モードをサポートしていないように見えますが、サポートしていますでしょうか。

試しにKifu-for-JSでpreset: "OTHER"でPlayerを初期化し、state.player.shogi.flagEditMode = true;で編集可能にして動作させようと試みました。

しかし、下記のJKFPlayer.prototype.inputMoveで呼び出されるNormalizer.normalizeMinimalがeditModeに対応していないため、colorが強制的に書き換わってしまいます。

(Kifu-for-JSかjson-kifu-formatのどちらのリポジトリに対するコメントが適切だったかわかりませんでした :bow: )

na2hiro commented 8 years ago

ご質問いただきありがとうございます. JKFPlayerはJKFの再生と(将棋のルールに従った)入力だけを行うためのもので,盤面編集(ルール外移動)に対応しておらず,その予定もありません. 盤面編集はJKFPlayerから離れて将棋盤そのもののモデルである na2hiro/Shogi.js のメソッドを呼ぶほうが自然と考えています. 編集後のShogi.jsの局面から再度入力を行う場合は,その盤面をJKFPlayerコンストラクタに渡すことになると思います. このチケットはJKFPlayerを変更するのではなく,再生モードはJKFPlayer,編集モードはShogiを内部のモデルとするようにKifu for JSを変更することを意図したものです.

ちなみにこのチケットの進捗ですが,大枠はできているのですが細かい編集モード向けのボタン等のUIが定まっておらず放置気味になっています. ただ編集の要望があるということなので,シンプルな状態でもリリースしようかと思います.必要ならそこからforkしてカスタマイズしていただければと思います.

これで回答になっていますでしょうか.

bluerabbit commented 8 years ago

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にして見える状態にして頂けると助かります。

bluerabbit commented 8 years ago

編集の要望があるということなので,シンプルな状態でもリリースしようかと思います.必要ならそこからforkしてカスタマイズしていただければと思います.

このbranchをpushして頂くことは可能でしょうか。

na2hiro commented 8 years ago

すみません. 時間が取れておらず,整える余裕がありませんでした.editorブランチをpushしました.

https://github.com/na2hiro/Kifu-for-JS/tree/editor

bluerabbit commented 8 years ago

ありがとうございます :bow: