Skip to content

muzudho/kif-parser

Repository files navigation

kif-parser

WIP 作業中です。

将棋ソフト間で受け渡しされる棋譜ファイル形式(.kif, .kifu)の仕様のゆらぎを解決するためのプログラムです。
ShogiGUI で作成した .kifu ファイルを、 将棋所のフォーマットに変換したり、その逆ができます。
このアプリケーションは 翻訳 に似ています

現在対応を進めているのは2ソフトです

Set up(設定)

python.exe is_ready.py
# または
is_ready.py

👆 Python3をインストールして、is_ready.py スクリプトを実行してください

readyok

👆 問題なければ readyok と表示されます

デスクトップGUI版

20211017shogi26.png

python.exe gui.py
# または
gui.py

👆 操作方法は画面を見て想像してください。 GUI版の説明は省略します

Attention(注意)

初めに注意。
以下のスクリプト版を使う場合、
棋譜ファイルはバックアップを残しておいてください。
このアプリケーションでは、棋譜ファイルのコピーを利用してください。

Smoke test(最初の動作確認)

このアプリケーションの最上位ディレクトリーに

  • 📄20211002_223506_KifuwarabeW31B22vsKifuwarabeW31B22[shogigui].kif
  • 📄20211002_223506_KifuwarabeW31B22vsKifuwarabeW31B22[shogigui].kifu

という KIFファイルと、 KIFUファイル を置いてあります。
これは ShogiGUI で出力したファイルですが、これを 将棋所 のフォーマットに変換する例を示します

同じく最上位ディレクトリーに 📂input フォルダーがありますので、ここに 📄20211002_223506_KifuwarabeW31B22vsKifuwarabeW31B22[shogigui].kif のコピーを置いてください。
このアプリケーションで棋譜ファイルを使う(翻訳する)場合、必ずバックアップを取っておいて コピーの方を使ってください

以下のコマンドを打鍵してください

python.exe translate.py -s kif -d kifu -t shogidokoro
                        ------ ------- --------------
                        1      2       3
  1. -s kif - 変換前は kif 形式です。他に kifu を指定できます
  2. -d kifu - 変換後は kifu 形式です。他に kif を指定できます
  3. -t shogidokoro - 変換後は 将棋所のフォーマットにします。他に shogigui を指定できます

そのあと、同じく最上位ディレクトリーの 📂output フォルダーの中を確認してください。以下のファイルが生成されています

  • 20211002_223506_KifuwarabeW31B22vsKifuwarabeW31B22[shogidokoro].kifu

ファイルを1つ1つ指定することはできず、フォルダーの中にあるファイルがすべて翻訳の対象になります

Danger(危険)

危険な操作を先に覚えてしまいましょう

翻訳の過程で作られる一時ファイルを全部残す

python.exe translate.py -s kif -d kifu -t shogidokoro --debug
                                                      -------
                                                      1
  1. --debug - 翻訳の途中で大量の一時ファイルを作りますが、それを消さずに残します

以下のフォルダーの中を確認してみてください

  • 📂temporary/to-pivot/kif
  • 📂temporary/to-pivot/kifu
  • 📂temporary/to-pivot/object
  • 📂temporary/to-pivot/reverse-kifu
  • 📂temporary/to-pivot/reverse-kif
  • 📂temporary/output-pivot
  • 📂temporary/from-pivot/pivot
  • 📂temporary/from-pivot/reverse-pivot

inputフォルダーの中のファイル消す

📂input フォルダーの中の棋譜ファイルを削除するコマンドは以下の通りです

python.exe debug.py --rmin
                    ------
                    1
  • --rmin - remove input の略語。inputフォルダーの中の .kif, .kifu, .json, .toml ファイルを削除します

他に 📂outputフォルダーの中を消す --rmout
📂temporaryフォルダーの中を消す --rmtmp オプションもあります

Documents

未整理

📖 .kifファイルの問題点の洗い出し
📖 .kifファイルの利用実態の調査
📖 .KIF に変わる棋譜保存フォーマット仕様の提案、および その変換アルゴリズム。(未着手) 📖 .kifファイルの国際化に向けた翻訳について
📖 kif-parser の展望
📖 kif-parser 開発者向けドキュメント

Other site documents

📖 棋譜ファイル KIF 形式 - オリジナルである柿木将棋での仕様
📖 分岐棋譜→単一棋譜変換プログラム - 白砂 青松によるオリジナルにはない「変化」の説明。2004年
📖 KIF形式を調べようぜ(^~^)?
📖 将棋の符号
📖 Kif - lishogiによる KIFフォーマットの説明

UTF-8, Shift-JIS変換

📖 BOMの消去

tkinter

📖 【Python3】tkinterでonChange的なイベントを捕まえたい

About

WIP KIFパーサー

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages