UnBlockMe(Free)また制覇

UnBlockMeというiPhoneアプリ(無料)をまたダウンロードしたら、少しバージョンアップしていた。以前よりもパズルの数が増えている。Beginnerが400種類、Intermediateが400種類、Bonusが400種類で合計1200種類。制覇と書いているのだから当然ながら全部解いた。完全攻略終了だな。しかし、中でも私的に一番難しかったのは、Bonusの399番だったなぁ…。

これ解ききるのに3日くらいかかった。
因みに、この手のパズルを解く確実な方法が1つある。それは、

常に今まで現れたことのない面を出し続ける。

ことだったりする。これが出来れば必ず解ける。なお、この手のパズルとは、15パズルとかルービックキューブとかを含む。ゴールとして設定されている状態に現在の状態からたどり着けるかどうかを考えて解くパズルのことを指す。UnBlockMeの場合は、これ↑だけで解ける。例えば先の例で言うと、そもそも動かすことに出来るブロックは、右中央、右下、左下の3つしかない。しかし、右中央や右下ブロックを動かしても意味がない。なぜならそれを動かしたことにより、次に出来ることが増えないからである。従って、初手は左下の長いブロックを右端まで動かすこと、となる。何故ならこれを動かすことにより、中央下の短いブロックが「新たに」動くようになるからであり、さらにそれを動かすことにより、左中央のブロックが動くようになるからである。更に更に左中央が動けば、左上の縦向きのブロックが動く。以下、順次新しいブロックを動かし続ければ自然に解ける。この種のパズルはそのように出来ているのである。などと偉そうなことを言っているが、このBonusの399番は私にとって一番難しかった。これ以外は大抵1分もあれば解けるのだが、これだけは3日位かかった。が、もちろん解けた。因みに最短手数は23手であることも分かった。
これ以外の15パズルとかルービックキューブとかの場合は、もう1つ重要なことを知っておく必要がある。それは、

部分的に完成している箇所があれば、残りの部分だけを動かすような動かし方を続ければ解ける。

ということだったりする。
実はこの種のパズルは、数学的には有限群と呼ばれる性質を持っている。ここで数学の詳しい話をする気はないのだが、有限群では常に新しい要素を出し続けるような演算を繰り返せば必ずすべての要素をなめ尽くすことができる。つまりゴールという要素に到達できる。例えば、0〜9までの整数での足し算を考える。足し算の結果として下1桁を考えることにより、常に0〜9までだけで話を進める。すると足し算は0〜9までを要素とする有限群となる。このとき、どんな数字からスタートしても、「3を足す」という演算を繰り返すと、0〜9までのすべての結果が得られる。
0→3→6→9→2→5→8→1→4→7→0→3…
つまり0〜9までのどれがゴールであっても3を足し続けることで到達できるということになる。1を足す場合でも、7を足す場合でも話は同じである。しかし、2など偶数、それに5の場合は話はうまくいかない。
0→2→4→6→8→0→2…
1→3→5→7→9→1→3…
0→5→0→5…
このような場合、全ての値をなめ尽くしていないので、それ以外がゴールであれば到達できないということになる。これは、演算の選び方がまずかったため、と解釈して頂きたい。繰り返すが数学の詳しい話をする気はない。いくらやってもパズルが解けず、同じ局面をぐるぐる回っているのは、このような状態に陥っているためなのである。「手」の選び方がまずいのである。私はこのような状態のことを「群がほどけない」と呼んでいる。このような状態に陥った場合、新しい手がどこかに必ず隠れているので、それを探して局面を打開する。そうすれば必ず解ける。なぜなら、これは解ける問題だからである。(解けない問題は簡単に作れる。)
このパズルについてはもう1つだけ、注意事項がある。新しい局面を作ることに夢中になりすぎて、パズルが解けていることを見落とさないこと。これが意外に重要だったりする。もちろん私もよくハマった。あれ?解けてる(爆)。