SpaghettiMazeMaker

これはなに?どう使うの?原理は? ただし簡単に曲がった壁の迷路の意味は?その他の注意は?
ダウンロードは?in English

その他のアプリ

SpaghettiMazeMaker Icon

これはなに?

曲線の壁を持つ迷路を、自動的に作るMacOS X用のちいさなアプリケーションです。

普通の迷路の自動生成では、壁や経路が東西南北の4方向に限られた四角い迷路しか作れませんが、SpaghettiMazeMakerはぐにゃぐにゃと曲がった壁を使って迷路を作ります。
このように...

sample maze

迷路は四角い外壁で囲まれていますが、中は曲線だけでできています。外壁には2カ所、入り口と出口(どちらが入り口でどちらが出口かはわかりませんが)があり、ふたつを繋ぐ経路はただ一通りです。

どう使うの?

まず、アプリをダウンロードしてください。ZIP圧縮されているので解凍すると、アプリとREADME.txtができます。アプリをダブルクリックしてください。アプリが立ち上がったら「ファイル」メニューの「新規」を選びます。「新規迷路」というダイアログが開きます。

new dialog

ここで、迷路の大きさと経路の平均の幅を入力して「作成」ボタンを押します。すると迷路を作るウィンドウが開きます。

mazde window

左右の三角をドラッグして入り口と出口の位置を決めます。左右だけでなく上下や、お互いのすぐ隣にも置くことができます。上の絵では右の緑色の三角をドラッグしています。位置を決めたら「作成開始」ボタンを押してください。あとは迷路の壁が成長してくのを眺めるだけです。ウィンドウはズームできます。それに従って迷路も拡大縮小しますが縦横比は変わらず、スクロールバーも現れません。

壁を作る余地が無くなったら終わります。「ファイル」メニューの「PDFへエクスポート...」でPDFファイルに書き出すことができます。ビットマップではなくBezier曲線のストロークで壁ができているのでIllustratorなどで開いて編集ができます。また、「ファイル」メニューの「開く...」と「保存」は今のところ迷路の設定を読み書きするだけです。作成途中を保存することはできません。

「詳細設定」メニューで表示の方法や迷路作成のパラメータを変更することができます。

Info Panel

ただし、これはこのアプリがどうやって曲がった迷路を作っているかを知らなければ意味はありませんが、適当に動かしてみてどう変わるか見るのも面白いかもしれません。設定によっては壁ができなかったり塞がってしまったりします。もとに戻らなくなったらPreferenceを捨ててください(ホームディレクトリの「ライブラリ」の「Preferences」のなかにあるjp.ne.decafish.SpaghettiMazeMaker.plistと言うファイルです)。

原理は? ただし簡単に

このアプリはランダムな曲線を、お互い交わらないように延長していくことで迷路の壁を生成します。平面上にランダムな曲線をのばしていくと、どうしても曲線がいっぱい集まったところと、逆にがらがらの広場のようなところができてしまって、均一なランダムさにはなりません。ランダムに曲線をのばすというミニマルなアルゴリズムではこれは避けようがありません。

このアプリはその問題を解決するためにちょっとしたズルをしています。完全にミニマルな方法ではなく、もともと平面に凸凹があり、その凸凹にそって壁を作っていくという方法をとっています。

その凸凹(ポテンシャルと呼ばれます)はレーザ光線が壁に当たったりするとギラギラと見える「スペックル」という現象にもとづいています。スペックルはランダムでありながら等方的(どの向きにもランダムさが同じ)で、一様(ランダムさが場所によらない)という特徴を持っています。アプリは「スペックルパターン」と呼ばれるスペックルによる光の強度分布を数値的に生成するシミュレータを内蔵しています。

作者のブログに、詳細な原理が作成に従って説明されています。

曲がった壁の迷路の意味は?

現代人は直線に囲まれて生活しています。すべてを直線で構成することによって、方向や距離の直感的な把握が簡単になりました。道順を尋ねるとき、京都の市街の場合と、クマしかいない山奥とでは、地名を知らなくてもどちらがわかりやすいかは考えるまでもないと思います。

しかし自然は曲線であふれていて直線はむしろまれです。古代の人たちは曲線に囲まれて狩りをし、木の実をとりました。彼らは道順を迷ったでしょうか?

曲がった迷路をたどることで古代の心が呼び起こされるかもしれません。

(本当の動機はブログを見てください)

その他の注意は?

動作環境は、MacOS X10.4 Tiger以上、10.6 Snow Leopard対応です。MacOS X10.3以下とWindowsその他のOS上では動作しません。
ただし手元に環境がないため10.4では未確認です。動作するはずですがボタンのレイアウトがずれるなどの不具合があるかもしれません。
アプリは32bit Universal Binary(PowerPCで動作確認済)で、サイズは約1.2MBです。
現在のバージョンは1.0Cです。

SpaghettiMazeMaker1.0Cの変更点は
  1. 小さいけど痛いバグがいっぱいあったのを修正
現在のバージョンでは「保存」すると「*.smsetting」というファイルができて、それを「開く...」で読み込むことができますが、迷路の大きさとその他のパラメータが入っているだけで、迷路は作り直しになります。

その他に

ダウンロードは?

アプリのダウンロードはここからできます。
ソースはここにあります。XcodeプロジェクトになっていてXcode3.1形式です。ただしアイコンファイルは含まれていません。
作者へのメールでご感想をお聞かせください。バグレポートもお願いします。
それでは。