Depleting and retaining certain blocks(1)

任天堂から発売された立体ピクロスにはまっています。これは面白い。ピクロスDS等の平面でのピクロスとは異なった趣を持ち、また全く異なる要素を持ったパズルであるよう感じます。任天堂 ++


細かいルールは任天堂の立体ピクロスのページを参照して頂くとして、このゲームを面白くしている要素には「丸で囲まれている数字」と「四角で囲まれている数字」の存在があるかと思います。任天堂の定義によると、

【丸数字】

丸数字は、残すブロックが2つに分かれていることをあらわしています。

立体ピクロス

【四角数字】

四角数字は、残すブロックが3つ以上に分かれていることをあらわしています。

立体ピクロス

となっています。


さて、実際にゲームをやり進め、任天堂のページでの図解を眺めるに、これらブロック群は正投影(直行射影)にて投影されているように見えます。もしそうではないとしても、投影された各辺はそれぞれ平行であるようなので、剪断成分(シアー/shear成分)を用いれば表現出来そうです。

そのため、行列演算の練習を兼ね、PostScriptにて記述してみました。自分にとって、PostScriptでの行列操作はOpenGL等での行列操作とは異なり、それは刺激的で、面白いものでした。今後、別エントリとして是非記載したいと思っています。


さて、以下の図は今日はまった問題です。PostScriptにて記述したものを、dvi2pngコマンドを用いて画像に変換しています。

さて、この問題には「壊してもよいブロック」と「必ず残るブロック(確定のブロック)」が一つずつあるようです。それは一体どれでしょうか。ただし、緑色で表されたブロックは「必ず残すブロック(すでに確定されたブロック)」であるとします。