ホームページへ戻る
箱入り娘 最短解ソルバー
Ver1.0 (2024年12月)

1. ダウンロード
klotskiw.exe (405KB)
        for Windows.

起動後に左下の JPN にチェックを
入れると日本語表記に変わります。

2. 基本的な使い方
[編 集] 問題図を編集出来ます。
[プレー] 自分でプレー出来ます。
[ソルバー] 最短解を自動で探します。
  後は、いろいろ試してみて下さい。
3. アルゴリズム
 このプログラムは、幅優先検索を使用します。
ただし、連続した動きを1手とする場合を考慮して、
待ち行列を2つ使用します。(手数が増える手と増えない手)
4. 一手の定義
 このパズルゲームの一手の定義について、公式ルールは無いようですが、
次の2つの要素の組み合わせで複数のルールが考えられます。

 1.ひとマス分の動きを一手とするか、保持した駒を連続して移動させる動きを一手とするか。
 2.保持した駒以外の駒を押して動かすことが許されるか。(実際には押して動かせる)

 このソルバープログラムは、この2つの要素を自由に選択することが出来ます。
一般的に「箱入り娘」の最短解は81手と言われていますが、必ずしもそうではないのです。
5. 絵柄の変更
 画像データを自分で描き直したものに変更することが出来ます。
右からダウンロードした画像ファイルをそのまま使用しても良いし、
描き直しても良いですが、ファルイ名を"skin.bmp"に変えて下さい。
このプログラムと同じフォルダーに置けば"skin.bmp"を優先します。
 尚、ビットマップ形式であること。及び、ファイル名は必ず
"skin.bmp"でなければなりません。
 
skin0.bmp
  
skin1.bmp
  
skin2.bmp
6. ソースコード
 初めに、Visual Studio Community(無料) のインストールが必要です。
インストール中、最低でも次の2つのモジュールにチェックを入れて下さい。

 ウインドウズ型 klotskiw.zip  klotskiw.sln を開く  ソルバー部のコードファイルは全く同じです。 
 (hako10solver.c) 
 コマンドライン型 
 (Solver開発用) 
 klotskic.zip  klotskic.sln を開く 
 Visual Studio Communityでのビルドのやり方やその他の使い方は各自で調べて下さい。
 尚、ウインドウズ型のソースコードは、とても汚いのでご注意下さい。
7. おまけ
最短手数が最長となる問題図はどのようなものだろう。気になります。
そこで、コマンドライン型のソースコードを右のように書き換えます。
シングルスレッドなので実行には時間が掛かりますが答えが出ます。
一般的なルールだと138手です。実際の図は自分で確認して下さい。
おまけソースコード
娘パーツ位置(7通り)に対し
FILE1〜7.txt のファイルを
出力するようになってます。

ホームページへ戻る