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

分岐が多いKIFが部分的に表示されません #36

Closed l33q closed 7 years ago

l33q commented 7 years ago

お邪魔します。 KIFファイルの一箇所に3つ以上の分岐があると、最初の2つまでしか表示されないようです。 例えば、 1 7六歩(77) ( 0:00/00:00:00)+

変化:1手 1 2六歩(27) ( 0:00/00:00:00)+

変化:1手 1 7八金(69) ( 0:00/00:00:00) みたいなKIFですと、7八金の分岐が見えません。 サンプルコードの henka.kif で何とぞご確認をお願いいたします。

l33q commented 7 years ago

自分でデバッグ入れて調べてみました。 不具合の原因は node_modules/json-kifu-format/lib/kif-parser.js の72行目にあると思われます。 while(fork.te>nowFork.te){fork = forkStack.pop();} を while(fork.te>=nowFork.te){fork = forkStack.pop();} に直すと、私の観察する限りでは不具合が解消されます。 もしこの修正が正しければ、取り入れていただければ幸いです。

na2hiro commented 7 years ago

返答が遅くなってしまい申し訳ないです. 確かに,3つ以上の分岐にバグがあるようですね. 原因まで調べていただいてありがとうございます. そのうち修正します.

na2hiro commented 7 years ago

まさに仰る通りの修正で間違いありませんでした.

https://github.com/na2hiro/json-kifu-format/commit/95c2c0f0d4c9b6811d35b7e055d92a6a3492de24 の変更を含むjson-kifu-format 1.1.1およびkifu-for-js 1.2.1をpublishしました. どうもありがとうございました.