スライドパズル

スライドパズル

問題の作り方


スライドパズルはあなたにも簡単に作ることができます。ここでは、スライ ドパズルのページがどのようになっているかを説明しますので、参考にして苦 しくって楽しいスライドパズルを作ってみて下さい。

HTMLファイルの中に、appletを以下のように組み込みます。

  <applet code="Slide.class" width=320 height=420>
    <param  name=problemfile    value="musume.data">
    <param  name=unit           value="60">
  </applet>
Slide.class は、Slide.javaを取り込んで、コ ンパイルして作ってください。コンパイルすると、6つのclassファイルがで きます。

param が2つあります。unitの方は、小さいマス目のサイズで、ピクセル数 (ドット数)で指定します。まあ、適当な値に調整してください。

problemfile が、問題そのものを定義したファイルです。このファイルが大 切です。ファイル "musume.data" が問題を定義したファイルです。このファ イルの内容次第でどんな問題にもなります。

問題ファイル 問題
;	箱入り娘
size 4 5
mark b
step 81
;
initial
abbc
abbc
deef
dghf
i..j
;
target
....
....
....
.bb.
.bb.
;
end

問題ファイルの記述について:

コメント
; で始まる行はコメントとして解釈されます。
サイズ
size 幅 高さ
手数
step 最短手数
これがると、「Step 現在の手数/最短手数」の形で、 盤の上中央に表示されます。
なお、ウソの最短手数を書いても、そのまま表示されます。
省略時には、「Step 現在の手数」の表示になります。
マーク
普通のコマと違う色(今は赤っぽい色)をつける駒を指定します。 コマは英字1文字で示します。
2つのコマに色を塗るときは、英字を並べて書きます。途中に空白は 入れません。
次の問題
next 次の問題ファイル名
この指定があると、問題の下にある[Go to next problem]ボタンが 有効になります。押すと、nextで指定した問題に変わります。
初期状態
initial
initial だけで始まる行に続いて、初期状態の盤面を指定します。
目標状態
target
target だけで始まる行に続いて、目標状態の盤面を指定します。
終了
end
これでデータファイルが終了します。
盤面指定:各マスは以下のようにして英記号1文字で指定します。
#
ブロックされている、あるいは盤として認めない場所として 除外すべき位置を示します。上の箱入り娘では存在しません。
アルファベット
各コマにアルファベットを割り付けます。上の箱入り娘では aから順につけていますが、どの順番でも異なっていれば 構いません。
スライドパズルは、コマの形状が同じものは区別しませんが、 意識的に区別したい時には英大文字を用いています。
.(ピリオド)
空き、または無指定を示します。


それでは、もう1つ例を挙げておきます。これだけ例があれば、もう自作 するのも簡単でしょう。

問題ファイル 問題
; 4x6 special by fuji
size  4  6
step 25
;
initial
#..#
d..b
aacb
aeef
geeh
gihh
;
target
#ee#
.ee.
....
....
....
....
;
end

ここで指定している問題ファイルの形式は、もともとは問題を解くスライド パズル・ソルバーというプログラムへの入力データの形式でありましたが、そ のままJavaのスライドパズルで使うようにしたものです。ようするに、横着し たわけであります。


スライドパズル