たびたびパズルを貸してくれる知人が、いきなり僕の前にパズルを置いた。
「買ったけど全然出来ません。やりますか?」
…これは、僕に挑戦しろということだろうか (^^;;
パイナップルをグラスの中に収めるパズル。「カットパイーン」という名前らしい。
存在は知っていた。が、この手の「詰め込みパズル」は苦手なので挑戦したことはなかった。
とりあえず借りて帰る。
まずはしばらくいじってみる。
3分もいじっていると、各ピースを構成する「最小サイズ」があることがわかったので、このサイズを基準とした時に各ピースがどういう形をしているのか紙に書き出してみる。
…どのピースも、最小単位5個の接続で出来ていた。そして、ピースは全部で12個。
収めるべきグラスはパイナップルのリングが6段入り、パイナップルのリング「1枚」は10個のピースで作られることがわかった。
パズル好きなら、ここでピンと来なくてはならない。
カットパイーンは、アレンジされてはいるがペントミノなのだ。
通常のペントミノとの違いは、「ピースを裏返せない」「90度の回転は出来ない」「10x6 のフィールドの、左右が繋がっている」という3点だ。
ここまで気付けば、このパズルが実は三次元ではなく、二次元で構成されていることもわかってくる。
知恵の輪や「SuperIQ」は理詰めで解けるパズルなのだが、ペントミノは理詰めでは解けないことがわかっている。
ひたすら、総当りで答えを探すしかない。これを解くのは大変だ…
そういえば、箱にも「設計上、このシリーズでは一番手間がかかる。」という一文が記されている。
手間がかかるというのは、試行錯誤するしかない、という意味だ。
というわけで、「試行錯誤しかないのであれば、わざわざ人間がやる必要も無い」と判断。
コンピューターに解かせる準備を始める。
幸い、ペントミノの答えを見つけるプログラムというのは、プログラム上級者の腕比べに良く使われる。
簡単なアルゴリズムから技巧を凝らして高速化したアルゴリズムまで、さまざまなプログラムのソースが容易に入手可能だ。
そこで、単純なソースを入手し、「気軽にいじれる」という理由で PHP に移植する。
(以前なら perl でやったが、最近 PHP ばっかり使っているのですっかり perl を忘れてしまった…)
移植に 40 分。ケアレスミスによるバグを取り除くのに 20分。
さらに、アルゴリズムをちょっと勘違いしていたことに起因する (^^; 根が深いバグを取り除くのに30分。
つまりは、1時間半程度でプログラムは完成した。
そして、答えが出るまではわずか3分程度。
最後に、コンピューターが出した答えにしたがって、実際のパズルを組み上げて完成。上の写真の状態となった。
ずるい?
そうかもしれないけど、解くためのアルゴリズム(ひたすら組み合すしかない)を導き出して、そのアルゴリズムにしたがって解いたのだから、立派に「パズルを自分の手で解いた」ことにはなるはず。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
16年 箱根小涌園ユネッサンに行きたい人へのまとめ(1/3)
16年 箱根小涌園ユネッサンに行きたい人へのまとめ(2/3)
16年 箱根小涌園ユネッサンに行きたい人へのまとめ(3/3)
申し訳ありませんが、現在意見投稿をできない状態にしています。 【あきよし】 パズルは自分で考えるから面白いのだと思います。ヒントはここに書いたとおりですので、自分でがんばってみてください。 (2004-09-06 22:49:33)【ナオ】 カットパイン教えてください (2004-09-06 16:35:06) |