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

分岐有の棋譜が表示されません #16

Closed ghost closed 9 years ago

ghost commented 9 years ago

10手目以降から分岐が生じる棋譜の読み込みをしようとすると、「棋譜ファイルが壊れています: 0手目で失敗しました: cannot move opposite piece」というエラーがでて棋譜を表示できません。読み込めなかった棋譜は以下になります。以下の棋譜はkifu形式ですが、保存形式によらず10手目以降に分岐がある棋譜についてはエラーが発生しました。

KIF version=2.0 encoding=UTF-8

---- Kifu for Windows V7 V7.11 棋譜ファイル ----

開始日時:2015/08/17 00:32:18 終了日時:2015/08/17 00:32:35 手合割:平手   先手: 後手: 手数----指手---------消費時間-- 1 2六歩(27) ( 0:01/00:00:01) 2 8四歩(83) ( 0:01/00:00:01) 3 2五歩(26) ( 0:01/00:00:02) 4 8五歩(84) ( 0:00/00:00:01) 5 7八金(69) ( 0:01/00:00:03) 6 3二金(41) ( 0:01/00:00:02) 7 2四歩(25) ( 0:01/00:00:04) 8 同 歩(23) ( 0:00/00:00:02) 9 同 飛(28) ( 0:01/00:00:05) 10 2三歩打 ( 0:05/00:00:07)+ 11 中断 ( 0:01/00:00:06) まで10手で中断

変化:10手 10 1四歩(13) ( 0:01/00:00:03) 11 中断 ( 0:01/00:00:06) まで10手で中断

9手目以前から分岐する棋譜の場合は読み込めました。以下は読み込めた棋譜です。

KIF version=2.0 encoding=UTF-8

---- Kifu for Windows V7 V7.11 棋譜ファイル ----

開始日時:2015/08/17 00:32:18 終了日時:2015/08/17 00:32:35 手合割:平手   先手: 後手: 手数----指手---------消費時間-- 1 2六歩(27) ( 0:01/00:00:01) 2 8四歩(83) ( 0:01/00:00:01) 3 2五歩(26) ( 0:01/00:00:02) 4 8五歩(84) ( 0:00/00:00:01) 5 7八金(69) ( 0:01/00:00:03) 6 3二金(41) ( 0:01/00:00:02) 7 2四歩(25) ( 0:01/00:00:04) 8 同 歩(23) ( 0:00/00:00:02) 9 同 飛(28) ( 0:01/00:00:05)+ 10 2三歩打 ( 0:05/00:00:07) 11 中断 ( 0:01/00:00:06) まで10手で中断

変化:9手 9 2六飛(28) ( 0:01/00:00:05) 10 中断 ( 0:01/00:00:03) まで9手で中断

na2hiro commented 9 years ago

ご報告ありがとうございます. 変化が二桁手数の時バグになることを確認しました. json-kifu-formatのほうで対応します.

na2hiro commented 9 years ago

a13cafe772f620f8db4e26082eec6a0dbe88fcfa で対応しました.