分岐棋譜→単一棋譜変換プログラム

最終更新日 2004.7.6 



■概要

 分岐棋譜ファイルの変化を、複数の単一棋譜に出力しなおします。

 分岐ファイルは非常に便利で、定跡や実戦譜の研究など幅広く使えます。Kifu for Java等を使用すればホームページでその棋譜を公開することもできます。
 ただ、そこで研究した手順を『柿木将棋』の定跡として登録しようとしてもできません。柿木将棋では単一棋譜からしか棋譜登録できないからです。
 本ソフトを使えば、分岐棋譜が複数の単一棋譜に変換されて出力されますので、その出力した棋譜を定跡登録すれば、結果的に分岐棋譜の変化全てを柿木将棋に登録できることになります。

 研究には盤駒を使うから分岐棋譜なんかわざわざ作らない、という人もいると思います。
 けれど、最近は『激指』『東大将棋』など、「検討モード」がついた将棋ソフトも登場しています。まだ人間以上の中盤力はありませんが、見落としや詰みなどを高速に見つけてくれるので、研究にはもってこいです。
 これらのソフトで研究をし、その結果を分岐棋譜で出力。
 それを本ソフトで単一棋譜に分解。
 それを柿木将棋に定跡登録。
 こういう使い方を想定しています。
 というか、こういう使い方を私がしていて、そのために本ソフトを作成しました。


■ダウンロード

 以下の書庫(圧縮)ファイルをダウンロードします。書庫ファイルはLHA形式ZIP形式のいずれかをお選びください。  以上の条件に同意できた場合のみ、ファイルをダウンロードして下さい。また、ファイルをダウンロードした場合、無条件に上の条件に同意したものとします。

Ver 1.00
LHA形式
kifuconv100.lzh
ZIP形式
kifuconv100.zip


■インストール・アンインストール

 インストールは、特別な作業は必要ありません。解凍したファイルを好きなところに置いていただければすぐ使用できます。

 アンインストールも同様です。レジストリやiniファイルを一切使っていません(そんな高級なことしてません(汗))ので、そのまま削除していただければそれでOKです。


■使用方法

□基本的な使用方法

「元となる分岐棋譜」に、分岐棋譜の絶対パスを入力して下さい。
「...」を押すと「ファイルを開く」ダイアログが出ますので、それでファイルを選択すると簡単です。

 あとは「実行」ボタンを押せば、単一棋譜に変換します。

 単一棋譜は、分岐棋譜名でフォルダを作り、その中に出力されます。棋譜名は1.kifから順番に連番となります。

 例えば、こんな分岐棋譜があったとします(同梱のsample.kifです)。

# ---- 柿木将棋VII V7.00 棋譜ファイル ----
手合割:平手  
先手:
後手:
手数----指手---------消費時間--
1 7六歩(77) ( 0:00/00:00:00)
2 3四歩(33) ( 0:00/00:00:00)
3 2二角成(88) ( 0:00/00:00:00)
4 同 銀(31) ( 0:00/00:00:00)+
5 7七桂(89) ( 0:00/00:00:00)+
6 3三銀(22) ( 0:00/00:00:00)
7 7八金(69) ( 0:00/00:00:00)
8 8四歩(83) ( 0:00/00:00:00)+
9 6六歩(67) ( 0:00/00:00:00)
10 8五歩(84) ( 0:00/00:00:00)
11 6五歩(66) ( 0:00/00:00:00)

変化:8手
8 7四歩(73) ( 0:00/00:00:00)+

変化:8手
8 6二銀(71) ( 0:00/00:00:00)+

変化:8手
8 5二金(61) ( 0:00/00:00:00)
9 6六歩(67) ( 0:00/00:00:00)

変化:5手
5 4五角打 ( 0:00/00:00:00)
6 6二銀(71) ( 0:00/00:00:00)

変化:4手
4 同 飛(82) ( 0:00/00:00:00)+
5 6五角打 ( 0:00/00:00:00)

変化:4手
4 3二飛(82) ( 0:00/00:00:00)
5 中断 ( 0:00/00:00:00)
まで4手で中断

 この分岐棋譜を処理すると、

 ▲7六歩△3四歩▲2二角成△同銀▲7七桂△3三銀▲7八金△8四歩▲6六歩△8五歩▲6五歩
 ▲7六歩△3四歩▲2二角成△同銀▲7七桂△3三銀▲7八金△7四歩
 ▲7六歩△3四歩▲2二角成△同銀▲7七桂△3三銀▲7八金△6二銀
 ▲7六歩△3四歩▲2二角成△同銀▲7七桂△3三銀▲7八金△5二金右▲6六歩
 ▲7六歩△3四歩▲2二角成△同銀▲4五角△6二銀
 ▲7六歩△3四歩▲2二角成△同飛▲6五角
 ▲7六歩△3四歩▲2二角成△3二飛
 という棋譜群を出力します。

□「○手以下の変化は出力しない」機能

 上記棋譜があった場合、

●1手以下の変化は出力しない場合

 ▲7六歩△3四歩▲2二角成△同銀▲7七桂△3三銀▲7八金△8四歩▲6六歩△8五歩▲6五歩
 ▲7六歩△3四歩▲2二角成△同銀▲7七桂△3三銀▲7八金△5二金右▲6六歩
 ▲7六歩△3四歩▲2二角成△同銀▲4五角△6二銀
 ▲7六歩△3四歩▲2二角成△同飛▲6五角

●2手以下の変化は出力しない場合
 ▲7六歩△3四歩▲2二角成△同銀▲7七桂△3三銀▲7八金△8四歩▲6六歩△8五歩▲6五歩

 という棋譜群を出力します。

 なんでこんな機能が必要かと言うと、激指の検討モードには、(検討モード中に)指し手を削除する機能がついていない(と思う)からです。例えば▲2二角成に△同飛ではなく△3二飛とクリックミスしてしまった場合でも、その手をソフトから削除することはできません。
 もちろん、分岐棋譜をエディタで開いて削除すればいいんですが、ファイルが大きくなると探すだけで一苦労です。
「○手以下の変化は出力しない」機能を使うと、それらの手を削除することができます。

 ただし、検討中に「こんな手もありかな?」とメモ的に一手だけ指しておいた、なんていう手もいっしょに削除されてしまいます。
 使用はよく考えてからにして下さい。

□注意点

 本プログラムは、
 これらの注意に抵触する処理をした場合、予期しない動作をする可能性があります。そのようなファイルを処理をしないようにして下さい。


■質問など

 質問などはサポート掲示板の方にお願いします。
 いろいろ質問が出揃えば、FAQみたいなものも作ると思います。

掲示板はこちら


■開発履歴



■ひとこと

 実はこのプログラム、最初はPerlスクリプトで作成しました。変化がどうとか、この部分を書き出すとか、判断をする部分に正規表現を使うとラクだったもので。
 ただ、実際に使ってみて便利だったので「他にも使う人がいるかな?」と思い、それだったらPerl環境を整えなくても使えるように……ということでC++で書き直しました。

 しかし冷静に考え直してみると、果たしてどれだけの需要があるんだろう……?(笑)
 ソフトで研究をする人はいると思います。柿木将棋に定跡を登録してる人もいるようです。
 けれど、研究したものを柿木将棋に登録している人が、果たしてどれだけいるでしょうか?

 こりゃあ、誰も使わんな……。

 そう考え、せっかく完成させたプログラムですが、しばらく置きっぱなしになってました。

 それでも配布を決意したのは、「いや、一人でも使う人がいればいいかぁ」と、またまた脳天気に思い直したからです(笑)。
 そんな人がいるかどうか判りませんが、もしいたとしたら、使ってやって下さい。

白砂 青松

トップへ戻る