最終更新日 2010年1月27日
倉庫番
SOKOBAN Ver.1.2
このソフトは、高知大学の共通教育の「ゲームの世界」の授業のために作った、
よく知られているパズル「倉庫番」のプログラムです。
ルールは次のようなものです。
1. 「倉庫」は「壁」と「通路」からなる。通路上には一人の「番人」がいて、
いくつかの「荷物」が散在している。さらに、荷物と同数の「ゴール」が指定されている。
2.パズルの目的は、番人を画面上操作して、荷物を通路を押して、ゴールまで運ぶことである。
3. 荷物を動かす際には、「荷物は押すことしか出来ない」、「荷物は一度に一つしか押せない」と
いう制約がある。
4. 荷物を動かす際には、ゴール上の荷物を動かすことも可能です。
このプログラム SOKOBAN 使い方は簡単で、実行すると

となります。
緑のマスが壁で、黄色のマスが荷物で、黒丸が番人で、灰色の丸がゴールです。
赤のマスは荷物がゴール上にあり、黒丸は番人がゴール上にいます。
番人は、矢印キーで移動できます。

途中で失敗に気が付けば、「Set」メニューの「Reset」を選択すれば、初期画面に戻ります。

「SAMPLE」メニューの問題は、私の使った簡単な問題と、高知大学の平成20年度の共通教育の授業「ゲームの世界」の
受講生たちが作った問題で、「Example」メニューの問題は高知大学の平成21年度の共通教育の授業「ゲームの世界」の
受講生たちが作った問題です。

「Set」メニューの「Set New PROBLEM」を選択すれば、「問題作成」用のウィンドが開き、
自分の考えた問題を作成できます。

盤の幅と高さを指定して、「Set」ボタンを押せば、盤のサイズを変えることが出来ます。

この状態で、自分の考えた問題を、画面をマウスでクリックすることにより、作成できます。
「壁」、「荷物」、「番人」、「ゴール」のどれを配置するかは、右のラジオボタンで選択します。
「壁」を配置しました。

次に、「荷物」と「番人」と「ゴール」を指定します。

問題が作成できたら、「OK」のボタンを押します。メイン画面に戻って、今作成した問題が表示されています。
直ちに問題を解くことが出来ます。

個人的な考えですが、「倉庫番」は、問題を解くより、問題を作るほうが面白いと思います。
色々作って、楽しんで下さい。
倉庫番の基本的な文献である「ゲームプログラミング」松原仁・竹内郁雄編の第3章 倉庫番 上野篤、中山康、
疋田輝雄著にはかなり難解な問題が載っています。
倉庫番のパズルはPSPACE完全問題だそうです。PSPACE完全とは、問題のサイズに対して多項式オーダのメモリを
使用して解ける問題の中で最も難しい問題のクラスに属するということらしいです。
「File」メニューの「Save」を選択すれば、画面の問題を保存できます。
適当な名前を付けて保存してください。ファイルは普通のファイルです。エディタで修正できます。拡張子は何でもいいです。
「File」メニューの「Open」を選択すれば、保存している問題をロードできます。
SOKOBAN.EXE のダウンロ ード