EnigMarch 2024 ヒント・解答一覧
はじめに
本記事は、EnigMarch で作問した行列推理パズルの解説編です。 問題一覧は以下の記事からどうぞ
解説
各問題について、ヒント・解答・その他コメントを掲載しています。 各項目の見出しをクリックすることで、内容を閲覧できます。
- 各ヒントは上から順に開けていくことを前提として記述しています。
- 解答にはルールや解答盤面の求め方を図解した画像を添えていますが、解説のために元問題とは異なる見た目の記号を用いている場合があります。
用語
解説中に度々登場する用語について、先に定義を述べておきます。
(盤面の)辞書順
盤面の各マスに対して、次で定まる順番のこと。
- 異なる行にあるマスは、より下にあるマスの方が後に来る。
- 同じ行にあるマスは、より右にあるマスの方が後に来る。
ただし、最も下の行で最も右にあるマスについては、最も上の行で最も左のマスを 1 つ次のマスとする。
例として、3 × 3 盤面における辞書順は以下の番号の順になる(9 の次は 1 とする)。
問題 1
ヒント 1
左盤面をもとに、ある規則によって右盤面が生成されるルールである。ヒント 2
右盤面の線は、左盤面において必ず白マスと黒マスの境界をまたいでいることに注目する。 左盤面の白マスと黒マスの境界のうち "ある条件" を満たす場所が、右盤面に線として列挙されている。ヒント 3
「各例示の左盤面はどれも、白マスや黒マスがそれぞれ縦横にひとつながりになっている」ことが重要である。ヒント 4
「縦横に移動しながら、盤面の 9 マスすべてを 1 度ずつ訪れる道」を考える。解答
左盤面において、白マスと黒マスの境界となっている辺を ドア と呼ぶ。 ドアのうち、「そのドア以外を横切らずに盤面の 9 マスすべてを一筆書きで通れる経路」が存在するものを、「ドアを横切る線」として表現したものが右盤面である。コメント
day 1 "door" - 白黒の境界を "ドア" と見立てて、その通過に関するルール
いきなり 3 盤面 × 3 例示ではない問題を投げた かなり丁寧めに例示をしたつもり
問題 2
ヒント 1
左盤面と中央盤面をもとに、ある規則によって右盤面が生成されるルールである。ヒント 2
右盤面はほぼ左盤面と中央盤面の AND 演算になっているが、その一部が灰色のマスになっている。ヒント 3
上の例示について、右盤面と中央盤面から AND 演算の結果を除外し、残った黒マスだけに着目してみる。ヒント 4
ヒント 3 で残った黒マスは、左盤面から中央盤面にかけて辞書順で次のマスに移動しているとみなせる。 このことから、左盤面と中央盤面の間には「移動しない黒マスと移動する黒マスの 2 種類が混在している」という関係が見出せる。ヒント 5
2 種類の黒マスは移動前(左盤面)や移動後(中央盤面)において重なっていることがある。 そうなると、移動前後の盤面を比較しただけでは移動しない黒マスの位置があるかどうか確定しないマスがあることがわかる。解答
左盤面に、2 種類の黒マスが存在している(固定、移動 と呼び分ける)。2 種類の黒マスは同じ場所に重複して存在することもできる。
左盤面から中央盤面に遷移する際に、固定黒マスは移動せず、移動黒マスが辞書順で次のマスへ移動しているとする。 このとき、固定黒マスが必ず存在するとわかる場所を黒マスで、固定黒マスが存在する可能性がある場所を灰色マスで表現したものが右盤面である。 解答盤面(上図の右盤面)を埋めるにあたって、移動黒マスが存在しえる場所は上図の黒三角の位置のみである。よって、移動前後のいずれかで移動黒マスが存在しない場所は必ず固定黒マス(黒色)になり、移動前後でともに移動黒マスが存在しえる場所には固定黒マスがあることもないこともあり得る(灰色)。コメント
day 2 "false" - 各記号が同じ動きをする中で、そのうちいくつかが "間違った" 移動をしていて…… という部分が発想の起点
灰色マスが例示不十分な気がするが、「右盤面で右下に黒マスがある場合のみ灰色マスに変更する」といった恣意的なルール以外で、なにか納得のいく別解釈はあるだろうか
問題 3
ヒント 1
例示全体で見たとき、ある性質が成り立っているルールである。ヒント 2
どのマスにも線が通っていることや、上の例示におけ一番左の盤面などから、盤面の 9 マスが「3 マス × 3 組」にグループ分けされていることがわかる。ヒント 3
実際に各盤面のマスをグループ分けしてみると、グループごとの折れ線の形状に一定のパターンが見えてくる。ヒント 4
どのグループの折れ線も「長さの比が 1 : 2 である 2 本の線分」とみなせる。 各盤面は、そのような折れ線が引けるグループ分けを列挙している。 よってあとは、そのようなグループ分けがどのような順序で並んでいるかを特定する必要があるが、正直その推測パートは非本質的な気がするので、条件を満たすグループ分けが 8 個順不同に列挙できれば実質正解できたと思ってよい解答
盤面の 3 マスの組 (A, B, C) に対し、線分 AB と線分 BC の長さの比が 1 : 2 になるものを musical な組と呼ぶ。
与えられた形状をした 9 マスの盤面において、9 マスを 3 つの musical な組へと分ける方法を(回転・反転で移りあうものを同一視して)すべて列挙する。それらの分け方を、各 musical な組を「長さが 1 : 2 になる線分」によって表現したものが各盤面である。
なお、各盤面の並び順は、以下のように決まっている。
・盤面の辞書順で最も小さいマスを含む musical な組(組 1 と呼ぶ)が異なる場合、組 1 を構成する 3 マスを辞書順で比較する。
・組 1 が同じ場合、組 1 に含まれないマスのうち盤面の辞書順で最も小さいマスを含む musical な組(組 2 と呼ぶ)を同様に比較する。 上図における各マスに書かれた数は、各盤面の並び順を決定する際に用いられた組の番号付けを表している。
問題 4
ヒント 1
左/中央盤面における矢印の向きと、中央/右盤面における矢印の位置には、関連が見て取れる(たとえば上の例示において、左盤面には左下向きの矢印があり、中央盤面には左下のマスに矢印がある)。ヒント 2
「各盤面をトーラスとみなしたとき、例示ごとに矢印の位置関係はすべて同じになっている」ことに着目すると、「盤面が 1 つ進むごとに、すべての矢印が同じ方向に動いている」という仮説が立つ。ヒント 3
上の例示における左盤面と中央の例示における中央盤面は同じだが、それらの右に続く盤面は異なるため、「盤面が 1 つ右に進むごとに、ある規則によって盤面が遷移していく」タイプのルールとしては説明できないことがわかる。ヒント 4
解答盤面の位置が不自然(最も右の盤面ではない)ことは重要である。ヒント 5
「盤面が 1 つ右に進むごとに、ある規則によって盤面が遷移していくルール」でないことはヒント 3 で確認したが、「盤面が 1 つ 左に 進むごとに、ある規則によって盤面が遷移していくルール」である可能性は残されている。解答
盤面が 1 つ左に進むごとに、盤面が次のように遷移する。
・各矢印の位置が、すべての矢印を合算したベクトルのぶんだけ(盤面をトーラスとして)移動する。
・各矢印の向きが、移動前にいた場所に対応する向きへと変化する。 上図における矢印の背景色は、遷移前後で対応する矢印を表している。
問題 5
ヒント 1
例示全体で見たとき、ある性質が成り立っているルールである。ヒント 2
上の例示における中央盤面、中央の例示における左盤面、下の例示における中央盤面に着目すると、盤面をトーラスとみなしたときに盤面端で白黒領域の境界がうまくつながる。ヒント 3
その他の盤面についても、盤面を回転させると盤面端で白黒領域の境界がつながるようにできる。ヒント 4
各例示において、3 盤面すべてで真っ黒のマス・真っ白のマスがそれぞれ少なくとも 1 つ存在していることに注目する。ヒント 5
盤面内の特定の点への近さによって、盤面が白黒に塗り分けられている。解答
各盤面に対し、(問題上では見えない)黒点と白点がそれぞれ共通の位置に 1 つずつ配置されている。 また、盤面の 4 辺に A, B, C, D とラベルを振ったとき、3 つの盤面は順不同でそれぞれ「A と B、C と D」「A と C、B と D」「A と D、B と C」が(盤面が裏返らないように)つながっている。
このもとで、各盤面について、最も近い記号が黒点である場所を黒、白点である場所を白として領域が塗り分けられている。 中央の例示について、黒点・白点の位置とそれぞれに対応する領域を可視化したものが上図である。
また、解答盤面の塗り方は、下の例示の左盤面と全く同じになることがわかる。コメント
day 5 "sign" - "+" と "-" が反対の効果を持っていて、互いに影響を打ち消し…… みたいな発想が起点だが、できた問題はここからだいぶ離れた
黒丸と白丸の位置を表示するかどうかで迷った あったら簡単すぎる気がしたが、ないとかなり難しいよな……
問題 6
ヒント 1
例示全体で見たとき、ある性質が成り立っているルールである。ヒント 2
どのマスからも線がちょうど 2 方向に伸びている点に着目すると、線が輪っか状になった "ループ" が何らかの意味でルールに関与してくることが考えられる。ヒント 3
盤面をよく観察すると、上の例示における「最も左の盤面の下の行」と「最も右の盤面の上の行」、あるいは「左から 2 番目の盤面の左下 2 × 2 マス」と「最も右の盤面の右上 2 × 2 マス」など、盤面間で共通の引かれ方をした線を発見できる。ヒント 4
各盤面は、大きなひとつながりのループから特定の 4 か所を抜き出したものになっている。 よってあとは、どの 4 か所が抜き出されているかを考えればよい。ヒント 5
各盤面の中央のマスに着目する。 各盤面に共通するパターンが(白黒マスや○×といった記号の並びではなく)ひとつながりのループであったことも、盤面の抜き出し方に関係してくる。解答
4 × 4 のトーラス盤面の 16 マスすべてを通る周回路が与えられている。 各盤面はそれぞれ、その周回路の一部を抜き出したものである。 各盤面の中央のマスは、周回路において(順不同で)距離 4 おきになっている。 上図では、元の周回路と抜き出す位置の対応を表示している。コメント
day 6 "round" - 素直に "周回" 路に関するルールを考えた
例示が盤面 4 つ組になったかわりに、完全な例示が 1 つしかない問題 どこを抜き出すかについて少し例示不足感があるが、わざわざ周回路が与えられているので、このルールがいちばん納得できるとは思う
問題 7
ヒント 1
例示全体で見たとき、ある性質が成り立っているルールである。ヒント 2
各例示において、どの盤面でも丸の個数が一致している。ヒント 3
各盤面の各行・各列ごとの丸の個数を数えてみると、盤面間で関連が見出せる。ヒント 4
どのマスも丸の個数が 0 ~ 3 の範囲に収まっていることを参考にして、丸 2 個の記号が縦並びと横並びの 2 パターンある理由を考える。ヒント 5
各盤面は、同じ "物体" を異なる 3 方向から見たときの様子を表している。解答
各盤面は、3 × 3 × 3 立方体盤面の 27 マスのうちいくつかを黒マスで埋めてできた立体の三面図である。 各記号は、その場所の黒マスの並び方を表している。丸の個数が黒マスの数で、横に並んだ丸は黒マスが連続していることを、縦に並んだ丸は黒マスが連続していないことを表す。 解答盤面の埋め方として、まず中央盤面をもとに確定する部分を考える(図の上半分において、黒で描かれた部分。黒マスがあることを ○、ないことを × で表している)。 すると、左盤面のように見える視点は(反転して同じになるものを区別しなければ)図に示す 1 通りしかなく、図の赤で描かれた部分が確定する。 再び中央盤面を見直すと、残る青で描かれた部分が確定し、共通の立体の形が完全に確定する。コメント
day 7 "watch" - 同じものを、視点を変えて "見る" 問題
ルール自体はかなりベタ問であろう 立体の配置が完全には定まらない(回転・反転に関する制約がないため)ものの、解答は一意になるように作問するのが楽しかった
問題 8
ヒント 1
盤面が 1 つ右に進むごとに、特定の規則で盤面が遷移していくルールである。ヒント 2
どの例示にも、異なる 3 種類の記号がそれぞれ高々 3 つ存在している。 また、各例示で使われている記号がバラバラなことから、特定の記号にのみ特別な意味があるということはなく、各記号に対して対称なルールになっていることがうかがえる。ヒント 3
盤面をトーラスとして見たとき、どの種類の記号も 2 × 2 領域に収まっている。ヒント 4
盤面が遷移するにつれて、記号が移動している。 ただし、同じマスに異なる記号が重なることがあるため、見かけ上は同種の記号の個数が増えたり減ったりしている。ヒント 5
2 種類の異なる記号が重なるケースだけでなく、3 種類の異なる記号が重なるケースもあるので、それぞれの場合で何が起こっているかを明らかにする必要がある。ヒント 6
上の例示と中央の例示は、「2 × 2 領域をなす 4 個の記号 3 種類の移動」および「三すくみによる表示順」というルールで説明ができるが、下の例示はそれだと説明できないように見える。ヒント 7
そもそも記号が 2 種類しか見えていなくて、第 3 の記号が何であるかは推測不可能である。 そうなると、解答盤面の一意性より、第 3 の記号は解答盤面にすら描けないことになる。 この不可解な第 3 の記号の正体が、極めて重要である。ヒント 8
中央盤面の黒い月の塊の右上が削れていて、かつここに灰色の星は存在し得ないため、この位置に重なっている記号は黒い月と第 3 の記号の 2 種類のはずである。 しかし、重なった位置にはまるで 3 種類の記号が重なったかのように何も表示されていない。 この矛盾は、第 3 の記号の特性により解消されることになる。ヒント 9
ズバリ、第 3 の記号は 真っ白な 太陽である。解答
各盤面をトーラスとみなす。 各盤面には、3 種類の記号がそれぞれ 2 × 2 領域を埋めるように 4 個ずつ配置されていて、1 つ右の盤面へ進むごとに、記号ごとに共通の移動を行う(8 方向いずれかに 1 マス移動 or 移動しない)。
また、各記号の間には三すくみの関係が定まっていて、記号が 2 つ重なった際には強いほうだけが表示される。記号が 3 つ重なった場合は、何も表示されない。
・上の例示:丸 > バツ > 四角 > 丸
・中央の例示:木 > テント > 川 > 木
・下の例示:黒い月 > 灰色の星 > 白い太陽 > 黒い月 上図では、白い太陽が存在するマスを緑色で示している(本来は、白い太陽があるかどうかにかかわらずただの白マスにしか見えない)。 解答盤面である右盤面では、右下のマスで白い太陽と黒い月が、中央下のマスで 3 種の記号が重なった結果、どちらも見かけ上白マスとなる。コメント
day 8 "rock" - じゃんけん → 三すくみ
各例示がぜんぜん違う見た目をしている問題すき
記号として何を使ってもいい性質を利用して、最後に見えない記号を用いたトリックを入れた 純粋な行列推理からは離れるが、これはこれでおもしろいとおもう
問題 9
ヒント 1
左盤面をもとに、ある規則によって中央盤面と右盤面が生成されるルールである。ヒント 2
どの例示も、なんとなく各盤面の模様の雰囲気が似ている(黒マスがかたまっているかどうかが一貫しているなど)。ヒント 3
左盤面の模様の回転がキーになる。 なお、上の例示において、左盤面の模様を時計回りに 90 度回転させたものが右盤面の模様と一致するが、これは偶然である。ヒント 4
左盤面の模様を時計回りに 90 度回転させたものの右側 2/3 が、中央盤面の模様の左側 2/3 に一致している。解答
左盤面の 3 × 3 の模様が、右へ転がって移動している(各盤面間には幅 1 マスの隙間がある)。 転がる様子をわかりやすくするために、上図では緑の補助線を引いている。コメント
day 9 "thread" - もともとは "ひとつながりの線" を使ったルールを考えていたが、うまくまとまらなかったので盤面をつなげる方針に変更
ここまでのトリッキーな問題群に比べて、かなりシンプルなルールに落ち着いた
問題 10
ヒント 1
例示全体で見たとき、ある性質が成り立っているルールである。ヒント 2
それぞれの例示で、黒マスがだんだん追加されていくように盤面を並び替えることができる。ヒント 3
黒マスがだんだん削除されていく(白マスがだんだん追加されていく)ように盤面を並び替えることもできる。ヒント 4
盤面を適切に並べ替えると、「盤面が右に 1 つ進むごとに、特定の規則で盤面が遷移していくルール」になっている。ヒント 5
各例示で最も黒マスの数が多い盤面を見てみると、(盤外にはみ出していることもある)十字形の白マスが見えてくる。ヒント 6
黒マスの数が 2 番目に多い盤面も、十字形の白マス 2 つを重ねたものとして表現できそうである。ヒント 7
盤面が 1 つ右に進むごとに、特定の規則で移動する丸が盤面を十字形に白く塗りつぶしている。解答
以下の遷移ルールを満たす 3 つの盤面が、順不同に並んでいる。
・3 × 3 すべてのマスが黒である盤面に対し、あるマスに白丸を 1 つ置き、白丸のマスとその上下左右を白マスで上塗りしたものが初期盤面である。
・盤面が 1 つ進むごとに、白丸が辞書順で 2 つ次のマスに移動し、白丸のマスとその上下左右を白マスで上塗りする。 上図の上半分は、白丸とその影響範囲を明示した、遷移ルール的に正しい順序で並んでいる盤面であり、これが下の例示に対応している。コメント
day 10 "zero" - 「記号のない盤面が登場する」をテーマに、やがて真っ白盤面へと収束していく遷移ルールを考えた
盤面の持つ情報量がかなり少なくなっているので、ルールが不明瞭にならないよう例示には気をつけている
問題 11
ヒント 1
例示全体で見たとき、ある性質が成り立っているルールである。ヒント 2
各例示で、ある盤面角のマスに 3 盤面を通して何の記号が出てくるかを調べてみると、必ず「三角 2 個」または「四角 1 個」になっている。ヒント 3
「三角 = 1, 四角 = 2 として、マスごとの合計値が一定である」といった仮説が立つが、盤面角以外のマスではそのような綺麗な性質は成り立っていないように見える。ヒント 4
しかし、合計値はそこまで大きくならないことがわかる。盤面角のマスではヒント 2 で見たように 2 で一定、盤面辺のマス(中央上や左中央など)では最大 3、盤面中央のマスでは最大 4 となっている。ヒント 5
「盤面角では 2、盤面辺では 3、盤面中央では 4」といえば、隣接するマスの個数である。ヒント 6
「三角からは 1 本の線が伸び、四角からは 2 本の線が伸びている」と考えると、大部分の記号の並びに説明がつく。解答
各盤面に、マスの中心を通るいくつかの線が対応していて、線の端点には三角が、縦横の線が交差する場所には四角が書かれている。 各盤面の線をすべて重ね合わせると、すべての場所に線が一度ずつ引かれる(田んぼの「田」の字をなす)ようになっている。 上図では、各盤面に対応する線を表示している。コメント
day 11 "bridge" - ペンシルパズル『橋をかけろ』からの直接的な連想
下の例示における左・中央盤面は、それぞれ単体では線の引かれ方が一意に決まらないようになっている せっかくなのでこういうちょっとしたパズル性も適宜加えていきたい
問題 12
ヒント 1
盤面が 1 つ下に進むごとに、特定の規則で盤面が遷移していくルールである(盤面をつなぐ線の向きに注意)。ヒント 2
記号の個数が 3 盤面を通して一定であることから、盤面が遷移するにつれて記号が移動していると考えられる。 実際にその視点で盤面を見てみると、記号の移動の規則自体は単純であることがわかる。ヒント 3
各記号は辞書順で次のマスに移動しているだけとわかったので、あとは向きがどのように決定されているかを調べればよい。 盤面が遷移するときに記号の向きが変化していると考え、どの記号の向きが変化しているかを列挙してみる。ヒント 4
向きが変化した記号を列挙してみると、どの行にも高々 1 つしかないことがわかる。ヒント 5
「変化した記号の向きが \ ならば、1 つ下の変化した記号は左側にある」「変化した記号の向きが / ならば、1 つ下の変化した記号は右側にある」という性質も見出せる。 なお、この性質は盤面をまたいでも成り立っている。ヒント 6
"3 盤面を落下していきながら、途中にある記号の向きを変えていく存在" を仮定する。ヒント 7
右の例示における中央盤面で、落下物が盤外に出てしまうように見える。 この場合の処理がどうなっているかは、上盤面にヒントがある。ヒント 8
どの例示でも、はじめ落下物は上盤面の中央列から落ちてきている。解答
盤面が 1 つ下に進むごとに、各記号が辞書順で次のマスに移動する。
また、上盤面の上部中央からボールを落下させる。ボールは記号に当たったら記号の向きに応じて 1 つ横のマスにずれて(盤面の左右はループしているとみなす)、その記号の向きを反転させる(処理順としては盤面の遷移と交互、すなわち「上盤面でボール落下」→「上盤面から中央盤面への記号の移動」→「中央盤面でのボール落下」→「中央盤面から下盤面への記号の移動」→「下盤面でのボール落下」の順)。 ボールの軌跡を上図に示した。 各盤面はボール通過後、すなわち記号の向きが変化した後の状態になっていることに注意する。コメント
day 12 "shield" - 物の移動を "遮る" ことをテーマに据えた
ルールに対して直感的な記号を採用し、さらにボールの落下する軌跡がつながるように盤面の並び順も縦向きにしたことで、納得度を高めようとしている
記号の移動は辞書順だが、ボールの移動には左右ループを使っていて、盤面外への移動処理が混在しているという点ではあまり美しくない ボールの移動も辞書順に従うと考えられなくもないが、その場合ボールと記号が変なぶつかり方をして追加の例外処理が発生するため、想定解とはしない方針
問題 13
ヒント 1
盤面が 1 つ右に進むごとに、特定の規則で盤面が遷移していくルールである。ヒント 2
情報の多い中央の例示に注目する。十字を縦棒と横棒の重なりとみなせば、縦棒や横棒の並び方には規則性が見えてくる。ヒント 3
中央の例示における縦棒は「各マスごとに 3 盤面を通して 1 度だけ現れる」という性質があるが、この性質をもう少し深掘りすると、横棒と同じ規則として統一的に説明できるようになる。ヒント 4
中央の例示における記号は、特定の軌道に沿って 1 マスずつ移動していっている。ヒント 5
ここまでの考察を踏まえて上の例示を見てみると、移動距離こそ 1 マスではないが、確かに渦巻状の軌道に沿って各記号が移動していることがわかる。ヒント 6
下の例示を見ても各記号の移動距離はよくわからないため、解答盤面を埋めることができない。 そこで、各記号の移動距離を決めている、まだ見逃されている要因が何かあるのではないかと考える。ヒント 7
各記号は種類ごとに、渦巻状の軌道において等間隔に並んでいる。解答
各盤面には、左上のマスから時計回りに外周を通って最後に中央マスへと向かうような、渦巻状の順序が定まっている。
各盤面で、縦棒と横棒がそれぞれ等間隔に並んでいる(盤面として表示されている 9 マスより前や後にも、無限に並んでいるとみなす)。 縦棒の間隔を x、横棒の間隔を y とおいたとき、1 つ右の盤面へ遷移するごとに、縦棒は y 個次のマスに、横棒は x 個次のマスに移動する。 なお、上の例示では x = 5, y = 8、中央の例示では x = 3, y = 2、下の例示では x = 13, y = 7 となっている。 下の例示における x, y の特定方法について説明する。 まず、中央盤面において横棒が 2 つあるので、横棒の間隔 y = 7 が得られる。 この y は縦棒の移動距離でもあるので、左盤面における縦棒の移動先は、中央盤面における(左上を 1 マス目、中央を 9 マス目としたときの)"14 マス目" であることがわかる。 ゆえに、中央盤面内に存在している縦棒と合わせて、縦棒の間隔 x = 13 が得られる。コメント
day 13 "wave" - 「周期性がある列」を "波" と捉える、またそれらの重ね合わせ
作問時、各記号の周期の計算が大変だった
問題 14
ヒント 1
各例示における盤面のつながり方が特殊なので、何らかの意味があると考える。ヒント 2
中央盤面をもとに、ある規則によって他 2 つの盤面が生成されるルールである。ヒント 3
縦の線でつながった盤面は、黒丸が縦にのみ移動している。 横の線でつながった盤面は、黒丸が横にのみ移動している。ヒント 4
左下の例示に注目すると、中央盤面から上の盤面は黒丸が上に、右の盤面は黒丸が右に移動している。 黒丸の配置から、上や右へと重力がかかっている雰囲気が感じ取れる。ヒント 5
辺にまたがった黒丸は、1 × 2 または 2 × 1 の長方形だと思うと収まりがよさそうである。ヒント 6
ヒント 5 の推測を一般化して、すべての黒丸に 1 × 2 または 2 × 1 の長方形が対応していると思うとどうなるだろうか。 特に上の例示で調べてみると、法則性が見えやすい。ヒント 7
「中央盤面の黒丸が、1 × 2 または 2 × 1 の長方形になって、周囲の盤面へと落下していく」「落下先の 2 つの盤面で、同じ黒丸に対する長方形の向きは異なっている」と考えると、上の例示には説明がつく。 しかし、左下の例示における上の丸(上盤面でも右盤面でも横長長方形になっている?)や、右下の例示における左盤面(左へ重力がかかっているのに、下の丸に対応する長方形が左の壁へ届かず浮いている?)など、説明できない部分もある。ヒント 8
落下前後で黒丸の(重力方向に対する)上下関係が入れ替わっていないことから、中央盤面における黒丸の位置関係もある程度ルールに関わってくることがわかる。ヒント 9
中央盤面において黒丸に対応する長方形を描くと、2 つの長方形が重なってしまう場合が考えられる。解答
各例示において、3 つ連なる盤面のうち真ん中のものを 初期盤面、それ以外を 結果盤面 と呼ぶ。
初期盤面において、各黒丸を中心とする 1 × 2 または 2 × 1 の長方形を考え、それらをいずれかの方向へと落下させたものが結果盤面である。 落下させる方向は各結果盤面ごとに異なり、初期盤面からその結果盤面が伸びている方向と一致する。 また、2 つの結果盤面で、同じ黒丸に対応する長方形の向きは異なるようになっている。 さらに、中央盤面において落下させる前の長方形が重なっていた場合、それらの長方形は一体となって落下する。コメント
day 14 "spirit" - 図形の "中心" と解釈した ちょっと拡大解釈感が否めない
そろそろ重力やっとかないとな~という気分だった 最初簡単すぎた気がしたので「長方形が重なったら一体になって動く」ルールを追加したという経緯がある
問題 15
ヒント 1
例示全体で見たとき、ある性質が成り立っているルールである。ヒント 2
下の例示に注目すると、3 行 4 列のマスは 1, 2, 3 個目の盤面で線が避けているように見える。 また、4 行 2 列のマスも 1, 3, 4 個目の盤面で線が避けているように見える。ヒント 3
各盤面に「その盤面では線が通れるが、他の盤面では線が通れない」マスが存在していると仮定してみる。ヒント 4
ここまでの考察をもとに上の例示を見てみると、「他の盤面では線が通れないマス」が各盤面に対しちょうど 1 個ずつありそうに見えてくる。ヒント 5
上の例示における 1 個目の盤面では、斜めに並ぶ 3 個の通過不可能マスが緑の線の拡大を抑えていると考えられる。 ここで、緑の線が通過不可能マスがなす壁の左上側ではなく右下側にある理由を考える。ヒント 6
各盤面の「この盤面でのみ線が通れるマス」から距離 4 以内のマスに線が引かれると考えると、上の例示は説明できる。 しかし、下の例示に戻ってみると、「距離 4 以内」の部分は何か所かで破綻しているので、修正が必要である。ヒント 7
距離 4 で到達できない場所、距離 5 で到達できる/できない場所の特徴を探る。 また、距離 6 で到達できる場所は存在しないようである。ヒント 8
「距離 6 の位置には到達できない」は、「移動可能な範囲はスタート地点を含めて高々 6 マスである」と言い換えられる。 到達可能性の条件が「スタートから最大で "6 マス" を通る形状が "ある条件" を満たしている」ことだと考え、"ある条件" としてふさわしいものを見つける。ヒント 9
正方形のマス 6 個で構成されている、とある図形を用いたルールである。解答
各盤面において、あるマスを選んで立方体を置き、盤面上で転がす。このとき、同じ面が 2 回以上盤面に触れないようにし、また他の盤面で立方体を置く場所として選ばれたマスは通過できない。 このもとで、立方体が移動した軌跡をすべて重ねて表示している。 上図では、立方体を置いたマスを○で、立方体が通れないマスを×で示している。コメント
day 15 "3D" - 盤面を 3D にするのではなく、盤上の記号を 3D にして考えることにした 3-dimensional 以外の解釈も考えた(D 字形の記号が 3 つとか)けど、さすがに逆張りが過ぎると思ったので素直に
立方体の展開図が想像できると少し解きやすいので、ちょっと知識に寄っちゃってるかも
問題 16
ヒント 1
盤面が 1 つ右に進むごとに、特定の規則で盤面が遷移していくルールである。ヒント 2
下の例示に注目すると、○や×が縦横に増殖しているように見える。ヒント 3
より細かく見ると、○と×が両方見える(盤面をトーラスとみなした場合に隣接している、と言い換えても同じ)マス(右中央・左下)には○も×も追加されなかったように見て取れる。ヒント 4
各例示で、遷移後の盤面における空きマスを見てみると、どれも遷移前において縦横に見える 5 マス内の○と×の個数が等しいことがわかる。解答
盤面が 1 つ右に進むごとに、各マスの記号が「そのマスを含む縦横に見える 5 マス内に存在する記号種のうち、個数が最小である種類のもの」になる(個数が最小のものが複数存在する場合は空きマスになる)。 より具体的に条件を書き下すと、あるマスの縦横を見たとき、記号が 1 種類しかなければその記号に、記号が 2 種類あってその個数が異なっていれば少ない方の記号に、それ以外の場合は空きマスになる。コメント
day 16 "hand" - 2 組の "手札" を比較する 2 → 1 の生成系(盤面 A + 盤面 B → 盤面 C)ルールを作ろうとしたが、結果けっこう違うものになった
最大でなく最小を取るようにしたのがひとひねりポイント
問題 17
ヒント 1
1, 2 番目の盤面だけであれば、単純な遷移ルールで説明できる。ヒント 2
「矢印がその向きに 1 マス移動したのち、時計回りに 45 度回転する」と考えたいところだが、ヒント 1 で述べたようにこの規則では後ろ 2 盤面を完全には説明できない。 しかし、矢印の向きに限れば、この規則で十分説明できていそうに見て取れるため、「矢印が何らかの規則で移動したのち、時計回りに 45 度回転する」という方針で考える。ヒント 3
1 例示が 4 盤面と少し多めになっているのにも意味がある。 ただし、4 という数そのものに意味があるのではなく、ある程度多いという部分が重要である。ヒント 4
盤面が 1 つ右に進むごとに、それ以前のすべての盤面を参照する ある規則によって盤面が遷移していくルールである。解答
各盤面をトーラスとみなす。 盤面が 1 つ右に進むごとに、各矢印は「それまでのすべての盤面(現在の盤面を含む)における同じマスの矢印を合算した移動量」だけ移動したのち、時計回りに 45 度回転する。コメント
day 17 "ancient" - よく見る遷移(n 番目の盤面によって n+1 番目の盤面が決まる)ルールを発展させて、より "昔" の盤面も参照する(n 番目以前の盤面によって n+1 番目の盤面が決まる)ことを考えた
この辺りの遷移ルールを発展させていくと、2 項間漸化式とか群数列みたいなルールも考えられそう ただ、必然的に例示の盤面数が多くなっちゃうんだよな……
問題 18
ヒント 1
各盤面の線を XOR 演算するなど、色々試してみる。ヒント 2
中央盤面と右盤面の線を XOR 演算すると、左盤面の線の一部になる。 また、左盤面は全域木(すべてのマスを通過する、閉路のないグラフ)になっているが、中央盤面と右盤面の線はそうなっていない(通らないマスがあったり、閉路があったりする)ことも特筆すべき点である。ヒント 3
左盤面と中央盤面をもとに、ある規則によって右盤面が生成されるルールである。ヒント 4
ヒント 2 の考察をもとに、「左盤面の線を、中央盤面の指示に従って抜き出す」規則を考える。ヒント 5
左盤面が全域木になっているため、左盤面において任意の 2 マスの間をつなぐルートが一意的に得られることが重要である。ヒント 6
中央盤面においてある条件を満たすマスの組について、左盤面の全域木に沿ったルートを考え、それらを中央盤面に XOR 演算で重ねたものが右盤面になる。解答
中央盤面における「引かれている線の形状が一致しているマスの組」それぞれに対し、左盤面でその 2 つのマスを繋ぐ線を抜き出して、それらの線すべてを中央盤面の上に XOR 演算で重ねたものが右盤面である。 上図は、下の例示に関する図解である。中央盤面について、○△□で示した場所が「引かれている線の形状が一致しているマス」である。これらの組それぞれについて、左盤面でそれらをつなぐ線を抜き出したものが上半分の 3 盤面であり、これらを中央盤面に XOR 演算で重ねると解答盤面である右盤面が得られる。コメント
day 18 "club" - "同じ性質を持つ対象のグループ" を絡めたルール
見た目が似ているが使われ方が全く異なるような盤面を持つ問題を作りたかった ペアの線だけを XOR した線を右盤面とすると少しルールが見えやすすぎたので、中央盤面の上に重ねるという小手先の紛れを入れたのだが、こうしたことによって中央盤面が線である意味が生まれた(単にペアを作るだけだったら他の適当な記号でもよかった)ので、かえって合理的な問題になったかもしれない
問題 19
ヒント 1(← これ自体もクリックで開閉することに注意)
例示全体で見たとき、ある性質が成り立っているルールである。
8 個ある小問題のうちはどれも単体で解けなくはないが、難易度には大きな差がある。 まずはどれか 1 問を解いて、そこから何か得られるものがないかを調べたい。ヒント 1a
中央の例示における中央の小問題が、単体で解くには最も簡単である。ヒント 1b
中央の例示における中央盤面と右盤面に着目すると、矢印がその向きに 1 マス進んだ後に向きが変わっているように見える。ヒント 1c
盤面端で跳ね返っていると考えれば、その他の矢印の移動も説明できる。 さらに、跳ね返りによって矢印の向きが反転すると見れば、移動後の矢印の向きの変化についても理解できる。ヒント 1d
中央の例示における中央の問題のルールは次の通りである。
・盤面が 1 つ右に進むごとに、各矢印がその向きに 1 マスぶん移動する(盤面端では跳ね返る)。その後、2 つの矢印の位置が入れ替わる。
ヒント 2
中央の例示における中央の小問題を解いてきたが、これは左や右の小問題と何らかの関連があるはずである。 まずは、各小問題のルールに関する関連を考えてみる。ヒント 2a
中央例示における中央の小問題のルールは「矢印の移動」+「矢印の位置交換」という 2 つの規則の合成になっていることに着目する。ヒント 2b
中央の例示における左や右の小問題についても、同じ「矢印の移動」または「矢印の位置交換」の規則が用いられているのではないかと考える。 しかし、これら 2 つの規則を組み合わせただけでは左や右のルールは作れそうにないため、まだ明らかになっていない「第 3 の規則」との組み合わせになっていることが視野に入る。ヒント 2c
ある 2 つの盤面が「既知の規則」+「第 3 の規則」という遷移ルールで移りあうと仮定した場合は、遷移前の盤面を「既知の規則」によって変化させることで、「第 3 の規則」による変化のみを取り出すことができる。 同様に、ある 2 つの盤面が「第 3 の規則」+「既知の規則」という遷移ルールで移りあうと仮定した場合は、遷移後の盤面を「既知の規則」の逆操作によって変化させることで、「第 3 の規則」による変化のみを取り出すことができる。 中央の例示における左や右の小問題についてこの手法で色々試し、第 3 の規則を特定したい。ヒント 2d
中央例示における左の問題のルールは「矢印の位置交換」+「第 3 の規則」、右の問題のルールは「第 3 の規則」+「矢印の移動」である。ヒント 2e
ヒント 2c の手法で「第 3 の規則」の変化のみを取り出すと、変化前後で矢印の向きが時計回りに 90 度回転していることがわかる。 また、盤面をトーラスとみなしたとき、矢印の位置関係も時計回りに 90 度回転している。 すなわち、盤面全体がどこかのマスを中心として時計回りに 90 度回転している可能性が高い。ヒント 2f
第 3 の規則は次のとおりである。「盤面をトーラスとみなし、2 つの矢印が共に指し示すマスを中心として、盤面が時計回りに 90 度回転する。」
ヒント 3
ところで、最終的には解答盤面となる小問題が一意に定まることになるが、そのためにはその小問題のルールだけでなく、各例示の各盤面までもが完全に決定できる必要がある。 よって、各例示が含む 3 つの小問題には、「ルールどうしの関連」だけでなく、「各例示・各盤面どうしの関連」もあるはずである。ヒント 3a
まずはここまでで判明した中央の例示における各小問題のルールをもとに、各小問題の解答盤面を埋めてみる。ヒント 3b
各小問題の解答盤面 3 つを並べてみる。 また、その結果を参考にして、他の盤面も比較してみる。ヒント 3c
各小問題における同じ段の例示の右盤面 3 つを並べたとき、段ごとに先ほど明らかにした 3 つの規則のいずれかが用いられていることがわかる(1 段目は「矢印の位置交換」、2 段目は「矢印の回転」、3 段目は「矢印の移動」)。
ヒント 4
ルールの細かい部分を明らかにするために、上の例示も確認する。 この例示の小問題を単体で解くのは難しいが、「各例示・各盤面どうしの関連」によって、1 段目・2 段目の右盤面を規則の推理に使えることがわかる。ヒント 4a
1 段目の右盤面間の規則(規則 1 と呼ぶ)では、黒マスの個数が変化していないことが重要である。 また、2 段目の右盤面間の規則(規則 2 と呼ぶ)では、どのような場所にある黒マス・白マスが変化しているかを見るのが重要である。 また、いずれかの規則の内容を看破出来たら、各小問題を用いて残りの規則(規則 3)を調べにいくこともできる。その際には、ヒント 2c の手法が有用である。ヒント 4b
規則 1 は次の通りである。「各黒マスが辞書順で 2 つ次のマスに移動する。」ヒント 4c
規則 2 は次の通りである。「隣接する同色のマスがちょうど 1 つであるマスの色が反転する。」ヒント 4d
規則 3 は次の通りである。「盤面が反時計回りに 90 度回転する。」ヒント 4e
左の小問題は規則 1 + 規則 2、中央の小問題は規則 3 + 規則 1、右の小問題は規則 2 + 規則 3 という組み合わせになっている。 この組み合わせは中央の例示とも共通しているため、下の例示でもこの順の組み合わせを仮定して進めるのがよさそうである。
ヒント 5
ルールを理解できたところで、下の例示における解答盤面となる小問題を埋めにかかる。 まずは 2 段目の右盤面間の規則を調べるのがわかりやすい。ヒント 5a
「左の小問題の中央例示における右盤面」と「中央の小問題の中央例示における中央盤面」を見比べることで、規則 2 を次のように推測できる。「各マス間の線の有無が反転する。」ヒント 5b
左の小問題に、規則 2 とヒント 2c の手法を用いることで、規則 1 の手がかりを得る。 規則 1 では、中央部の線は変化せず、外周部の線のみが変化しているように見える。ヒント 5c
規則 1 は次の通りである。「外周(中央マスを除いた 8 マス)でひとつながりになっている線それぞれが、その長さと同じ距離だけ時計回りに外周を移動する。」ヒント 5d
中央の小問題に、規則 1 とヒント 2c の手法を用いることで、規則 3 の手がかりを得る。 規則 3 では、縦線・横線の本数はそれぞれ変化していないように見える。ヒント 5e
規則 3 は次の通りである。「盤面をトーラスとみなし、縦線が 1 マス右に、横線が 1 マス下に移動する。」
解答
各例示(3 つの小問題の組)ごとに、盤面を変換する 3 つの規則 1, 2, 3 が定まっている。 この規則を用いて、各小問題のルールは次のように表される。
・左の小問題では、盤面が 1 つ右に進むごとに、規則 1, 2 がこの順に適用されている。
・中央小問題では、盤面が 1 つ右に進むごとに、規則 3, 1 がこの順に適用されている。
・右の小問題では、盤面が 1 つ右に進むごとに、規則 2, 3 がこの順に適用されている。
また、各問題の各例示における右盤面の間には、次の関係が成り立っている。
・左の小問題の n 例示目の右盤面を規則 n で変換すると、中央小問題の n 例示目の右盤面になる。
・中央小問題の n 例示目の右盤面を規則 n で変換すると、右の小問題の n 例示目の右盤面になる。
なお、各例示ごとの詳細な規則は以下の通りである。
[上の例示]
・規則 1: 各黒マスが辞書順で 2 つ次のマスに移動する。
・規則 2: 隣接する同色のマスがちょうど 1 つであるマスについて、その色が反転する。
・規則 3: 盤面が反時計回りに 90 度回転する。
[中央の例示]
・規則 1: 2 つの矢印の位置が入れ替わる。
・規則 2: 盤面をトーラスとみなす。2 つの矢印が共に指し示すマスを中心として、盤面が時計回りに 90 度回転する。
・規則 3: 各矢印がその方向に 1 マスぶん移動する。ただし、盤面端では跳ね返る。
[下の例示]
・規則 1: 外周(中央マスを除いた 8 マス)でひとつながりになっている線それぞれが、その長さと同じ距離だけ時計回りに外周を移動する。
・規則 2: 各マスの間の線の有無が反転する。
・規則 3: 盤面をトーラスとみなす。縦向きの線が 1 マス右に、横向きの線が 1 マス下に移動する。 解答盤面となる小問題を構成するにあたって、規則 2・規則 3 は逆操作の結果が一意に定まるため、各例示の右盤面が与えられれば、例示全体が一意に決定できることがわかる。コメント
day 19 "odd" - 当初は素直に "奇数" 関連で攻めようとしたが、でもこれだと odd というよりかは parity になってしまう じゃあ思い切ってもっと "変なこと" するか~~~~
見た目は面白いけど、ルール出し大変・例示の用意が大変・デバッグも大変・解けたもんじゃない難度になっている気がする
問題 20
ヒント 1
盤面が 1 つ右に進むごとに、ある規則によって盤面が遷移していくルールである。ヒント 2
各例示ごとに、盤面が遷移することで丸の数が増えることはないように見える。 そこで、丸が移動する規則を考えてみる(丸の数が減るのは、複数の丸が 1 マスに集約されてしまった状態と考えられる)。 特に、上の例示では丸の数が変わっていないので、ここを見ると移動前後で対応する丸がわかりやすいだろう。ヒント 3
上の例示における左盤面から中央盤面への遷移に着目すると、ほぼ辞書順で次のマスへの移動になっている。 1 つだけ例外的な移動をしているように見える丸があるので、その理由を考える。ヒント 4
逆に、1 つ次のマスに移動している丸の共通点を考えるのも重要である。ヒント 5
上の例示において、左上・中央上にある 2 つの丸は、どちらも辞書順で 2 つ次のマスに移動している。ヒント 6
"縦横にひとつながりになった丸のかたまり" という視点で、それぞれの丸の移動量を調べてみる。解答
盤面が 1 つ右に進むごとに、各丸が辞書順で何個か次のマスへと移動する。 その移動量は、「縦横にひとつながりになっている丸の個数」に等しい。コメント
day 20 "neighbor" - 隣接マスを見るルールを作れと言わんばかりのお題なので、素直に従った
できるだけ問題傾向(ルールの種別・登場する記号)がバラけるように作問していきたいが、どうにも移動系が多くなっちゃってる気がする
問題 21
ヒント 1
それぞれの盤面で、白丸や黒丸の領域の境界線を描いて、何か見えてこないか試してみる。ヒント 2
中央の例示における中央盤面と右盤面について、各記号の領域の境界線を重ねると、ちょうど盤面のすべての辺を覆い尽くすようになっている。ヒント 3
上の例示においてヒント 2 と同じことを確かめてみると、線が重なることはないが使わない辺が残ってしまう。 しかしこれは、隣り合った領域が同じ種類の記号で満たされている(すなわち、同じ種類の記号の間に線が引かれていることもある)と考えれば問題ない。ヒント 4
左盤面をもとに、ある規則によって中央盤面と右盤面が生成されるルールである。 また、中央盤面と右盤面を全体として見たとき、ある性質が成り立っている(これはヒント 2 で見た通りである)。ヒント 5
中央盤面・右盤面にある各記号がまとまった領域それぞれについて、左盤面ではその領域に何が含まれているかを確認する。解答
中央盤面と右盤面には、各マスの間に(盤面上では表示されない)線が引かれていて、盤面をいくつかの領域に分割している。同じマスの間には、中央盤面と右盤面のどちらか一方にのみ線が引かれている。
分割された各領域について、左盤面におけるその領域内の白丸・黒丸の個数を比較し、より多いほうの色の丸が領域内のすべてのマスに配置される(同数のときは何も配置されない)。 上図では、中央盤面と右盤面の領域の境界線を表示している。 下の例示について、中央盤面の線の引かれ方は左盤面と中央盤面の丸の配置によって一意に決まるので、右盤面の線の引かれ方も必ず上図の通りになる。コメント
day 21 "mix" - 当初は「各領域に液体が入っていて、領域の変化により液体が "混ざり合う"」といったルールを考えていたが、連続量を扱うのがどうにも難しかったのでこの形に落ち着いた
働きが異なる左盤面と中央盤面・右盤面の見た目を、かなり意図的に似せにかかった
問題 22
ヒント 1
盤面が 1 つ右に進むごとに、ある規則によって盤面が遷移していくルールである。ヒント 2
各盤面での線の引かれ方を観察する。 黒マスのせいで線があるかどうかはっきりしない部分も多いが、どうも例示ごとに同じ位置に線が引かれていそうである。 また、下の例示における中央盤面には途切れた線があることから、線が単純な領域分けを表しているのではないこともわかる。ヒント 3
上の例示における 3 マスの L 字形領域に注目すると、「全て白マス」「下 1 マスだけ黒マス」「全て黒マス」の 3 パターンの塗られ方をしている。ヒント 4
ヒント 3 における観察は、「黒マスは "重力に従う液体" のように振る舞い、領域をある高さまで満たしている」という示唆を与えている。ヒント 5
液体が湧き出すポイントが、各盤面に 2 つずつ存在している。解答
各盤面に同じ形の線が引かれていて、線で区切られた領域に液体(黒マスで表現されている)が溜まっている。 液体が湧き出す特定のマスがいくつか存在していて、各盤面で湧いた液体は線をまたがず左右および下への移動で到達できるマスへと流れ込む。 盤面が 1 つ右に進むごとに、液体が湧き出すマスは辞書順で次のマスへと移動する。 液体を青マスで、液体が湧き出すマスを丸で表示したものが上図である。 問題では液体が黒マスとして表現されていたので、一部の線の存在がはっきりしなくなっていたが、どの例示においても線の引かれ方・液体が湧き出すマスの位置は上図の通りに一意的に定まる。コメント
day 22 "cloud" - 水が降ってくるソースとしての "雲"
重力下で液体が溜まる系のルールはわりと典型だとおもう 各盤面に共通の記号(本問題では壁となる線)が描かれていると、情報が冗長になり問題として美しくなくなりがちなので、黒マスで壁を見えにくくすることで情報量を減らしてみた
問題 23
ヒント 1
特定の記号だけを抜き出して、法則性を考えてみる。ヒント 2
丸は「左盤面と中央盤面をもとに、ある規則によって右盤面が生成される」ルールを満たす。ヒント 3
三角・バツは「例示全体で見たとき、ある規則が成り立っている」ルールを満たす。ヒント 4
まず丸の配置が決まって、丸がないマスには適切に三角・バツが配置されていく。解答
丸については、左盤面と中央盤面を NOR 演算(どちらの盤面でも丸がない場所に丸を置く)した結果が右盤面になっている。 丸がないマスについては、3 盤面全体を通して辞書順で三角とバツが交互に並んでいる。コメント
day 23 "neither" - 今までで最もひねりのないお題回収をしました
序盤に難しい問題を作りすぎたので、終盤に差し掛かってきたここいらで全体の難易度調整もしていきたい できるとは言っていない
問題 24
ヒント 1
この問題は、1 盤面からなる例示 2 つで構成されている。ヒント 2
この問題群全体にわたるルールを再確認しておくと、「解答盤面が一意に決まるようなルールのうち、最もシンプルなもの」が正解になる。解答
3 × 3 盤面の四隅と中央に星が配置される。 一見すると明らかに例示が足りないが、盤面をつなぐ線がなく 2 つの盤面は独立した例示であるため、最もシンプルなルールを仮定すれば 2 つの盤面は同じ見た目になるしかない。コメント
day 24 "power" - レギュレーションの際を攻める勇気 言うほどお題に沿ってなさそうな感じも "力押し" ということで
ペンシルパズルでいうところの「解が一意であることを使った手筋」を要求している 工夫すれば通常の問題にもこの考え方を組み込めそうなので、以降の問題で使える場面があればやってみたい
問題 25
ヒント 1
盤面が 1 つ隣に進むごとに、ある規則によって盤面が遷移していくルールである。 盤面の繋がり方が特殊なため、普段は右へ進んでいく遷移の方向がどちら向きになっているのかよくわからないが、実はどちら向きに遷移していると捉えても問題ない(言い換えれば、逆向きの遷移も同じルールで表される)。ヒント 2
隣り合った盤面を観察することで、例えば右への遷移では記号がなんとなく右へと動いているような雰囲気を感じ取れる。また、盤面外に飛び出した記号は反対側にワープしていそう(すなわち、盤面をトーラスとみなせそう)である。ヒント 3
右上の盤面にある 2 本の横線は、下への遷移先である右中央の盤面では黒マスへと化けているように見える。ヒント 4
黒マスを "板状の物体" と捉える。解答
各盤面をトーラスとみなす。 盤面が 1 つ隣に進むごとに、盤面に置かれた板(黒マスまたは黒い線として表されている)それぞれがすべて同じ方向(盤面の遷移方向に一致する)へと 90 度転がるように移動する。 板の位置がわかりやすいように、上図では盤面の外枠を消し、黒マスを灰色マスとして表示している。 また、点線は盤面の境界上に位置する板であり、向かい合う点線は同一の板を表す。コメント
day 25 "arise" - 黒マスが "持ち上がって" 太辺へと変化するルールの模索
盤面の遷移につれて記号が変化するルールは珍しくないが、マスと辺の相互変化はわりと新鮮なのではと思う
問題 26
ヒント 1
左盤面と中央盤面をもとに、ある規則によって右盤面が生成されるルールである。ヒント 2
盤面の形状以外に特徴がないので、形状に対して行える操作をいろいろ試してみる。ヒント 3
中央の例示における右盤面は、左盤面の左側と中央盤面の右側の面影を残している。 また、上の例示における右盤面も、サイズ感こそ違えど、どことなく左盤面の形状に似ている。ヒント 4
左盤面と中央盤面をある意味で "組み合わせる" と右盤面になるのだが、その際に縮尺の変更が行われている。ヒント 5
左盤面と中央盤面のサイズを揃えてみる(この際、マスの縦横比が保たれなくても気にしない)。解答
左盤面と中央盤面について、全体の縦横のサイズが一致するように縮尺を変えたうえで AND 演算を行い、共通部分として生じるマスが正方形になるように各行・各列を伸縮したものが右盤面である。コメント
day 26 "clue" - パズル作成のお題として「ヒント」を選んでくるの、なかなかやってませんか?? そこで逆に、"記号が全くない" 問題を作った
Insight 的なルール推測図形演算パズルにはまだ発展可能性を感じているので、手が空いたら取り組んでみたい
問題 27
ヒント 1
この問題には、他の問題にはないおかしな点が 2 つある。 1 つは盤面外に黒いダイヤが存在する点、もう 1 つは解答盤面を示す ? 記号がない点である。ヒント 2
「ある盤面に属する記号が、その盤面の外に置かれることもある」と仮定した場合、? 記号は左下または右上の盤面の中央に存在しているが、他盤面の記号が重なったせいで隠れてしまっていると考えられる。ヒント 3
盤面外に記号がはみ出る可能性があるため、どの記号がどの盤面に属するのかを判別することは難しい。 そこで、いったん盤面を無視し、記号の並びだけに注目して、何か法則性がないかを調べてみる。ヒント 4
白ダイヤ 1 つ・黒ダイヤ 2 つが(順不同で)一直線上かつ等間隔に並んでいる場所がいくつも発見できる。ヒント 5
ダイヤが黒・白・黒の順に並んでいる場合、白ダイヤは必ず中央盤面内に存在している。
ダイヤが白・黒・黒の順に並んでいる場合、白ダイヤは必ず左盤面内か右盤面内に存在している。
そして、これまで盤面外にはみ出していると考えられた 2 つのダイヤはいずれも黒だったことを合わせると、ダイヤの色に関する法則性が見えてくる。ヒント 6
各盤面に属するダイヤは、その盤面内にあるとき白で、その盤面外にあるとき黒で表示されている。 一見盤面内にあるダイヤであっても、属する盤面が異なる場合は黒で表示されることになる。解答
盤面が 1 つ右に進むごとに、各ダイヤがそれぞれ決まった移動量だけ移動する。 ただし、ダイヤは盤面外に出てもよく、盤面内にある場合は白色で、盤面外にある場合は黒色で表示される。各ダイヤは 3 つの盤面のうちちょうど 1 つでだけ白色になっている。 上図において、緑の線は移動していくダイヤの対応関係を、数はダイヤがどの盤面に属しているかを表す。また、各ダイヤの移動量は次の通りである。
・盤面 1(左上)の白ダイヤ:左に 2 マス、上に 1 マス
・盤面 2(中央上)の白ダイヤ:左に 9 マス
・盤面 4(左中央)の白ダイヤ:左に 4 マス、下に 1 マス
・盤面 5(中央)の白ダイヤ:上に 4 マス
・盤面 6(右中央)の白ダイヤ:左に 2 マス、下に 2 マス
・盤面 7(左下)の左上マスの白ダイヤ:左に 1 マス
・盤面 7(左下)の中央上マスの白ダイヤ:上に 4 マス
・盤面 9(右下)の白ダイヤ:左に 5 マス
盤面が遷移するたびに盤面自体が 4 マス右に移動していることに注意する。コメント
day 27 "rule" - 昨日の "clue" よりヤバいお題が来た それならこちらも強気に応えるまでよと、「各盤面の記号は盤面内に収まっている」という暗黙のルールを破壊した、ちょっとライン越えの作問をした
他の問題に比べて異質な感じ(記号が盤面外にある・? 記号がない)は出せているはずなので、解く側も "そういう" 問題なんだと思って取り組んでもらえることを祈っている
問題 28
ヒント 1
この問題は、1 盤面からなる例示 4 つで構成されている。ヒント 2
どの例示も盤面が 1 つしかなくそのサイズも同じなのに、記号の配置が異なっている理由を考える。ヒント 3
普段あるはずのマスを区切る罫線が見えていない部分があるが、これは記号が配置されて隠れたのではなく、"元から罫線が一部欠けた盤面である" として考えてみる。ヒント 4
各領域(罫線で区切られた部分)ごとに、三角形が 1 つずつ配置されているとみなせる。ヒント 5
各領域に配置されている三角形の位置は、その向きに応じて決定されている。ヒント 6
各領域に配置されている三角形の向きは、隣接する領域に関する情報を用いて決定されている。ヒント 7
隣接する領域の個数に着目する。解答
罫線で区切られた領域ごとに、以下の規則を適用する。
・隣接する領域の個数が偶数ならば、辞書順で最初のマスに ◢ が配置される。
・隣接する領域の個数が奇数ならば、辞書順で最後のマスに ◤ が配置される。 上図では、領域の境界がわかりやすいよう太線にし、各三角形を灰色で表示している。コメント
day 27 "rule" - このパズル群全体のルールに対する裏切り以外に、EnigMarch 自体のルール「1 日 1 個のパズルを作る」に反抗する意図で、同日に複数問題を投稿した また、お題を "罫線" の意味で解釈して、普段デフォルトで引かれている罫線を消してみた
問題 24 と同じ 1 盤面で完結するルールだが、問題 24 とは違って解にバリエーションが生まれているところが好き
問題 29
ヒント 1
盤面が 1 つ右に進むごとに、ある規則によって盤面が遷移していくルールである。ヒント 2
各例示において、各盤面の線を重ねてみる(XOR 演算ではなく OR 演算)。ヒント 3
線を重ねた結果として浮かび上がってくる形状が一致するので、この形の特徴を調べてみる。ヒント 4
線を(つながり方を保ったまま)変形すると、対称的な形が見えてくる。ヒント 5
正三角形のマスを 9 個並べてできる、正三角形の盤面を考える。解答
各盤面を正三角形とみなす(例えば上の例示では、左上の 1 マスを上段、右・下辺の 5 マスを下段、残りの 3 マスを中段として見る。正三角形とみなす際の向きは例示ごとに異なる)。 盤面が右に 1 つ進むごとに、盤面全体が 120 度右へと回転する。 上図に、下の例示に対応する正三角形盤面を示した。 この例示では、正方形盤面の右下角が正三角形盤面の右下角に対応している。コメント
day 27 "rule" - 問題 27, 28 に続き、せっかくなら「デイリーチャレンジ」という概念をもっと徹底的に破壊してやろうじゃないか
盤面を正三角形化して考えるアイデアは前から持っていたが、どうやって解き筋のある問題に落とし込むかがわかっていなかった これならなんとか解けそう
問題 30
ヒント 1
例示全体で見たとき、ある性質が成り立っているルールである。ヒント 2
例示ごとに、各記号が 4 つずつ存在している。ヒント 3
中央の例示において、四角が 1 つの盤面において 3 連続で並んでいる点に着目する。ヒント 4
上の例示において、丸・三角・バツが 2 つの盤面でそれぞれ同じ並び方をしていることにも着目する。ヒント 5
3 つの盤面が横に並んでいる現状の配置から離れて、もっと自由に盤面の位置を組み替えることを発想する。ヒント 6
同種の記号が、同一直線上に等間隔で並ぶ。解答
各盤面を適切な位置関係で並べると、同種の記号 4 つがそれぞれ同一直線上に等間隔で並ぶ。 上図に、下の例示における各盤面の並べ方を示している。 左盤面と中央盤面に現れていない記号は、すべて右盤面 3 × 3 の範囲に収まらなければならないことから、盤面の並べ方が一意に定まる。
問題 31
ヒント 1
盤面が 1 つ右に進むごとに、ある規則によって盤面が遷移していくルールである。ヒント 2
一部の矢印は「矢印の向きに 1 マス移動し、時計回りに 90 度回転する」という変化をしているように見える。ヒント 3
ヒント 2 の変化をしていない残りの矢印は、「反時計回りに 90 度回転し、矢印の向きと反対に 1 マス移動する」という、ヒント 2 のちょうど逆の変化をしているように見える。ヒント 4
ヒント 2・ヒント 3 のルールは、矢印を「その矢印が指し示している、"表裏の区別がある" 辺」とみなすことにより、統一的に説明できるようになる。解答
盤面が右に 1 つ進むごとに、各矢印が回転移動している。
各矢印を「その矢印が指す辺」と同一視する。その辺それぞれが、盤面外周(中央以外の 8 マス)を通過しながら時計回りに周回するように、中央マスの四隅のいずれかを軸として時計回りに 90 度回転する。矢印が辺をどちら側から指しているかは、回転の前後で一致する。 上図は、矢印が表す辺とその回転の様子を示している。コメント
day 28 "coin" - "表裏のある物体" という抽象化を行った "確率発生器" としての用法も考えたが、一意性が要求されるパズルにはやはり活用しづらい
「辺を『辺を指す矢印』と同一視することで、辺に "向き" を与える」、色々と応用ができそう
問題 32
ヒント 1
盤面が 1 つ右に進むごとに、ある規則によって盤面が遷移していくルールである。ヒント 2
中央の例示における右盤面が存在していないが、これは 0 × 0 盤面があるものとして考える。 盤面が遷移するにつれて、徐々に盤面が狭まっていっているように見て取れる。ヒント 3
上の例示において、盤面をトーラスとみなし、各矢印をその向きに 1 マス動かしてみる。ヒント 4
盤面で矢印がなくなった行や列が削除されていっているように見える。 例示の各遷移が共通のルールで説明できるように、矢印の移動と行や列の削除が行われる順序がどうなっているかを分析する。ヒント 5
行の削除と列の削除は同時ではなく、別のタイミングで行われている。解答
盤面が 1 つ右に進むごとに、以下の変化が順に起こる。
・盤面で矢印が存在しない行を削除する。
・盤面をトーラスとみなし、各矢印がその向きに 1 マス移動する(移動後に重なった矢印は消える)。
・盤面で矢印が存在しない列を削除する。 解答盤面は上図のようになる。 下の例における左盤面(上図の左下盤面)から、まず矢印が存在しない行を削除し(左上盤面)、各矢印を移動させて(右上盤面)、その後矢印が存在しない列を削除した結果が、解答盤面(右下盤面)である。
問題 33
ヒント 1
盤面の線の複雑さ・対称性に注目して、ルールを大枠で予想する。ヒント 2
左盤面をもとに、ある規則によって中央盤面と右盤面が生成されるルールである。ヒント 3
特に下の例示の中央盤面を参考に、「盤面の対角線に対する線対称」がルールに絡んでこないか調べてみる。ヒント 4
左盤面の "折り返し" を考える。解答
左盤面について、盤面を対角線で折り返して線を XOR 演算することで新たな盤面を生成する。 盤面の対角線は 2 本あるので、それぞれの対角線について盤面を生成した結果が(順不同で)中央盤面・右盤面である。コメント
day 30 "book" - 本をたたむような紙の折り返しをイメージして作問
ルール上生成される盤面が対称性を持ってしまうため、そのことを見抜かれてしまうのは前提として、各盤面で考えられる対称軸をあえて多くすることでルール特定をちょっと難しくしてみた
問題 34
ヒント 1
問題中に 9 個の小問題が含まれているが、これらは以前に出てきた問題と同じものである。 これらの小問題のルールと解答盤面がわかっていれば、この問題の各例示にどのような法則が成り立っているかを推測するのは難しくない。解答
左の小問題の変換ルール(m 個の盤面をもとに n 個の盤面を生成する規則)を用いて、続く m 個の小問題の解答盤面をもとに生成された盤面が、続く n 個の盤面である。 下の例示の構造を説明する。 まず、1 個目の小問題(問題 34)のルールは「1 個の小問題のルールと続く m 個の小問題の解答盤面をもとに、n 個の盤面を生成する」規則である。 2 個目の小問題(問題 19)の解答盤面である小問題(上図左上)のルールは、「線の有無を反転させたのち、縦線を右に、横線を下に移動させる」という遷移、すなわち m = 1 個の盤面をもとに n = 1 個の盤面を生成する規則であった。 よって、この規則によって 3 個目の小問題(問題 18)の解答盤面(上図右上)を変換することで、問題 34 の解答盤面が得られる。コメント
day 31 "sequel" - これまでの問題の "続き" を作るイメージで、みんな大好き大謎をこしらえた 問題 19 のいい使い道が思いついちゃったんだから、こうして実装せざるを得ないよな
2 例目におけるルールの拡張(問題 33 のルールを斜め向きの線に対しても適用する)も好き 偶然にも問題 29 の解答盤面の対角線上に斜め線が引かれていなくて、都合がよかった
以上、全 34 問でした。
EnigMarch 2024 問題一覧
#EnigMarch
毎年 3 月恒例の EnigMarch という、毎日パズル制作チャレンジに乗っかってみました。
短時間でもそれなりの問題が作れそうなジャンルを考えた結果、行列推理 的なパズルへの挑戦をすることにしました。 *1
ルール
今回の問題群全体にわたるルールを説明します。
基本
各問題は 1 枚の画像として与えられます。 画像内にはいくつかの 盤面 があり、それぞれが線で結ばれていくつかの 例示 を構成しています。
たとえばこの例題では、3 つの盤面からなる例示が 3 つあります。
ここで、各例示の盤面たちは、ある共通の ルール を満たしています。 そのルールが何であるかを特定し、? 記号がある盤面(解答盤面)を正しく補完してください。
[例題 1: 解答](クリックで開閉)
盤面が 1 つ右に進むごとに、黒いダイヤが 1 つ右のマスに移動する。
ただし、右端のマスの 1 つ右のマスは 1 つ下の行の一番左のマス、右下のマスの 1 つ右のマスは左上のマスとみなす。
他にもいくつか例題を用意しました。
[例題 2: 解答](クリックで開閉)
左盤面と中央盤面の線を XOR 演算(2 盤面を重ねて、同じ場所に重なった線を打ち消す)したものが右盤面である。
[例題 3: 解答](クリックで開閉)
各盤面を重ねたとき、3 つの矢印が「矢印の方向に 1 マス進むことを繰り返せるループ」を構成する。
ただし、盤面の端は反対側の端とつながっているものとする。
細則
各問題のルールは、以下の性質を満たしています。
- 解答盤面が一意に定まる。裏を返せば、解答盤面が一意に定まらないような "広い" ルールは正解にはなりません。
- 恣意的すぎない。ここでいう "恣意的" とは、たとえば「盤面の特定のマスに対し、不自然な例外処理が働いている」といったものです。
大ざっぱにまとめると、「解答盤面が一意に決まるようなルールのうち、最もシンプルなものを正解とする」ということになります。
問題
EnigMarch には日替わりの「お題」が設定されていたのですが、ネタバレを避けるためお題は伏せています。 また、問題は難易度順ではなく、作成日順に並んでいます。
以上、全 34 問でした。
ヒント・解答は、以下の記事にまとめています。
*1:前に 行列推理 Beginner Contest というものに触れたことがあり、これが面白かったからという経緯もある
A Magical Hat - 各ステージの解説・作問意図 (1)
パズルゲームを作りました。不思議な魔法の帽子🎩を使って倉庫番系パズルをします。
『Magician's Hat』がテーマの 48 時間ゲームジャム Thinky Puzzle Game Jam 2 参加作品です。
開発中の様子はすでに記事にしてあるので、ここではシステム面ではなくパズル面の解説をしていきます。
※がっつりネタバレを含みます、まだパズルを解いてない方はぜひ先に解いておいてください!!
section 1
ゲームのタイトルにもなっているメイン要素、魔法の帽子 の基本的な挙動を紹介しています。
1-1
初期状態ではプレイヤーが見えませんが、左右を押すと帽子が左右に動き、上を押すと帽子からひょっこり出てきます。
プレイヤーがプレイヤーの形をしたマーク(以下「ゴール」と呼ぶ)に乗ると光るので、あとは帽子を四角いマーク(以下「ターゲット」と呼ぶ)に乗せればよさそうに思えますが、床にくっついた帽子を拾い上げるという操作は従来の倉庫番システムでは不可能ですね。これを達成するまでに、以下が学べるかと思います。
- 素直に帽子の側面の位置に移動しようとすると、帽子のつばを上から押して 引っ掛かる形になって、その位置まで下がれない。
- そのため、帽子の中に入って帽子を横に動かす ことで、帽子の横に 2 マスのスペースを確保する。
- そして、帽子の側面に立って上に移動すると、帽子のつばを下から押して 帽子を持ち上げることができる。
ちなみに、部屋の四隅がへこんでいるのは単にデザイン的な理由だけではなく、後述する帽子のつばが折れる現象が起こらないようにするためでもあります。つばが折れると帽子を持ち上げられなくなってしまうので、その詰みを起こさないようにする意図です。
1-2
1-1 と同様、帽子を持ち上げる問題です。 帽子を壁にぶつけたときの挙動を理解してもらうべく作りました。
- 帽子を右の壁(切れ込み入り)にぶつけると、壁の切れ込みにつばが刺さる。この状態だと、帽子を上に動かすことはできない。
- 帽子を左の壁(切れ込みなし)にぶつけると、壁にぶつかったつばが折れる。この状態だと、帽子を上に動かすことができる。
狭い隙間に帽子を通すためには、左右両方のつばを折ってから、帽子の底面を押して持ち上げていくことが要求されます。
1-3
帽子の基本的な挙動は説明し終えた(というのは嘘で、帽子の中に入った状態で下に帽子を押し下げることはできないことはここで初めて知ることになりそうですね)ので、ここからは理解度確認も兼ねた、チュートリアルではない通常パズルのターンです。
「帽子のつばをいつ折るか、あるいは折らないか?」がポイントですね。 帽子を(上から)2 段目から 3 段目に下ろすときに右のつばが必要ですが、帽子をターゲットに置いた後ゴールする際には右のつばが邪魔になるので、3 段目で折っておかなければいけません。そうなると 3 段目から 4 段目に下りるときに左のつばを使いたいので、ここまで大事に取っておく必要がありました。
1-4
最後はちょっとした引っ掛け問題です。 *1
ターゲットに帽子を置くには右のつばが必要ですが、素直に帽子を運ぶと右のつばは折れてしまうようになっています。幅 2 マスの縦の通路を通るにはどちらかのつばを折っておく必要があるので、スタートすぐ左の壁で左のつばを折るのが正解です。
section 2
帽子の扱いにも慣れてきたところで、ブロック が登場します。
2-1
ブロックです。押せます。 ターゲットが 2 つに増えたので、ターゲットには帽子だけでなくブロックを乗せてもよいことがわかります。
2-2
ターゲットを満たすだけならブロックを押し下げればよいですが、そうするとゴールが埋まってしまうので、邪魔なブロックと帽子の位置をなんとかして入れ替える必要があります。 その過程で帽子が右端の壁の右上角に押しやられてしまいますが、左のつばと帽子の内部を使えば回収できるのが面白い点ですね。
2-3
ここからは、帽子とブロックの相互作用にフォーカスしていきます。
最後ゴールするために右のつばを折っておきたいのですが、部屋の右側の壁にはすべて切れ込みが入っています。よって、代わりにブロックの左側面を使わせる問題です。
2-4
どんどん行きましょう。 ターゲットに乗せられるのは帽子だけですが、帽子は初動で左のつばが折れ、また帽子をターゲットの上側に持っていく際に右のつばも折れてしまい、それ以上押し下げることができなくなるように思えます。 しかし、幅 1 マスのプレイヤーではなく幅 2 マスのブロックを用いれば、帽子に入ってしまうことなくつばのない帽子を押し下げられるというトリックがあります。
2-5
セクション 2 の最後を飾るのは、みんな大好きエレベーター面です。でもこのエレベーターは外れません。ごめんね
上の壁に張り付いたブロックを帽子によって押し下げる という頻出テクニックがここで初登場します。 上がりきったエレベーターの左上の部分と天井の間に帽子の右のつばを差し込み、そのまま左のつばを押し下げれば、エレベーターの外にいながらエレベーターを降ろすことができるわけですね。
section 3
帽子とブロックの相互作用はまだまだこんなものでは終わりません。 ここからは、ブロックを帽子に入れる アクションを通じて、帽子の内部に関する性質への理解を深めてもらいます。
3-1
ゴールの位置を考えると、ターゲットに置けるのは帽子だけです。ターゲットの 4 マス左に置かれた帽子に入って、ターゲットの位置まで移動したのち帽子から出る、という最終形が見えますね。 しかし、帽子の移動経路にブロックがあって邪魔ですし、このブロックを押し下げてどかすこともできません。 というところで、ブロックを帽子に入れられないか?とひらめき、帽子をブロックに下から押し付けてブロックを「食べる」という操作に至ってほしいです。 でも今思うと、ブロックを帽子に入れる最初のステージとしてはいきなり変化球を投げてしまってるかもしれないな~~
このゲームの帽子がなぜ「魔法の帽子」と呼ばれているのかが、この辺りから見えはじめてきます。 帽子にブロックを入れた後にプレイヤーが入ることができる、すなわち 帽子内部の深さが 2 マス以上ある ことがここではっきりと告げられます。空間がおかしなことになっていますね。
3-2
構造は 3-1 と同じで、最後帽子に入って移動する際に邪魔となるブロックをあらかじめ帽子で食べておくステージです。 さっきと違うのは邪魔なブロックが 2 つに増えていることですが、魔法の帽子にかかれば 2 ブロックを入れた後にプレイヤーが入ることもできます。つまり、帽子内部の深さが 3 マス以上ある ことがわかります。
ちなみに、2 つ並んだブロックを食べる工程も自明ではなく、右のつばを折って左のブロックを食べ、左のつばを押し下げて右のつばを折ったのち右のブロックも食べる、というちょっとしたひねりが存在します。
3-3
やたらブロックが多いのは、帽子内部の深さは 3 マスである、すなわち帽子に入るオブジェクトは 3 つまでであることを伝えたかったためです。 素直に解こうとすると、帽子を単に下のターゲットの位置に置いて、そこに上からブロックを押し込む形になると思いますが、上のブロックは合計 5 マス押し込まないといけないので、2 マス足りなくなります。
3-4
セクション 3 のラストにふさわしい、テクニックたっぷりのステージです。
ゴールから逆算して考えると、最終的には横長のブロックに左のつばを引っ掛けて押し下げたいですね。 しかし、幅 2 マスの縦の通路を通るために、右のつばを折っておかなければならず、そうなると帽子を押し下げる力を与えることができません。 ここで活躍するのが 3 つのブロックです。深さ 3 マスの帽子をブロックでいっぱいにすれば、帽子本体を上から押せるようになる ことが推測できます。
ただ、3 つのブロックをすべて帽子に入れること自体も簡単ではありません。特に一番下のブロックを拾い上げるのに、下の壁に張り付いたブロックを帽子によって押し上げる というもうひとつの頻出テクニックが要求されます。 このステージでは、帽子の右のつばをブロックの下に差し込み、左のつばを押し上げるという形で、ブロックを 1 マス浮かせることができます。 その後のブロックや帽子の取り回しも単純ではなく、総合的にかなりよくできたステージだと思っています。
section 4
前セクションの内容を発展させて、1 マスではない 大きなブロックを帽子に入れる とどうなるかを見ていきます。
4-1
帽子を右に持っていきたいですが、上の通路には邪魔なブロックがあり、下の通路は狭くて帽子を通せません。
ここで気になるのはやはり、1 マス四方ではない 縦長のブロックを帽子に入れる と何が起こるかでしょう。色々動かしてみると以下がわかって、上の通路で帽子とブロックを入れ替えることができます。
- 帽子を使って、縦長ブロックの下半分を食べることができる。
- 下半分を食べた状態で帽子やブロックを横に押すと、連動して一緒に横に動く。
- 下半分を食べた帽子のつばを押し下げると、食べていたブロックを「吐き出す」。
これまで帽子に入れてきたブロックはどれも小さかったため、一度入れたブロックを外に取り出すことはできませんでしたが、大きいブロックだとその一部を出し入れするといった操作が可能になるわけですね。
4-2
ゴールとターゲットの見た目をお手玉してるように見える配置にしてみましたが、冷静に考えるとマジシャンはお手玉しませんね
さて、3 × 3 のブロックを右上から左下に運びたいですが、そのままでは間の狭い部分を通過できません。 そこで、ブロックに切れ込みがあることを利用して、左のつばを折った帽子でブロックの右の棒を食べれば、ブロックの右下部を一時的に消すことができます。こうしてブロックを左下に運べたら、右のつばも折って帽子を真ん中の棒に移し替えましょう。
4-3
これまたどうみても動かせないブロックがありますが、帽子の力でなんとかします。 右のつばを折って左のつばを押し上げれば L 字ブロックを食べられますが、その後帽子から L 字ブロックを出すにあたって左のつばが邪魔になります。 この矛盾にも見える状況を打破するのが 2 マスブロックで、これを帽子に押し付ければ左のつばを折ることができます。
4-4
帽子を使って縦棒を運ぶテクニックを学ぶステージです。かなり広々として見えますが、縦 3 マスのブロックにとってはそうでもありません。 それなりに解答も長くなるので、順を追って説明します。
まず、棒を左から真ん中に持ってきます。途中の通路が高さ 2 マスしかありませんが、帽子に棒の下 2 マスを収納すれば通すことができます。
次に、棒をさらに真ん中から右に持っていくわけですが、帽子を押し上げると棒を完全に飲み込んでしまうので、いったん帽子を押し下げて棒を取り出し、その棒を直接押し上げるという手順が要求されます。 なお、実際に動かしてみるとわかりますが、この過程でかならず左右どちらかのつばが折れてしまいます。
いったん棒が押し上げられれば、再び帽子収納術を用いることで、棒を右まで運び込めます。 しかし、この段階では棒が上の壁に張り付いているので、あと 1 マス押し下げなければいけません。 帽子の両方のつばが残っていれば話は早かったのですが、そうではないのでもう一工夫要ります。 3-4 でやったように、もう 1 本の棒で帽子の内部を埋め尽くし、右のつばを棒に引っ掛けて本体ごと押し下げればよいです。
4-5
このセクションの最後は、見た目が面白いこのステージです。 帽子をフル活用して、大きなブロックを右側に運んでいきましょう。
このステージがやらせたいことは明白で、まずコの字のブロックの右の棒を通過させ、次に左の棒も通過させる、というだけです。 そして、つばを失うことなく右側の棒を通過させることまでは簡単です。 その後左の棒を通すのが大変で、大まかには以下のような流れで実現できます。
- ブロックの下側を通して、帽子をいちばん左まで運ぶ。途中、左のつばは折らざるを得ない。
- 左の部屋、コの字の外側から帽子・ブロックの位置を調整する(帽子は中央の突起から 2 マス間をあけた位置、ブロックの左の棒はそれより右側)。
- ブロックの上側を通過して右の部屋に戻り、そこからコの字の内側に入り込む。
- コの字の内側から左の棒の位置を調整し、帽子の右のつばを押し上げて食べる。
section 5
幅 1 マスでさえあれば、魔法の帽子は なんだって 食べられます。なんてったって魔法の帽子ですからね
ということで、「帽子に物を入れる」というアイデアが出た当初からずっとやりたかった、ステージの壁を帽子に入れる 問題群です。
5-1
やっぱり、一見して明らかに不可能に思える問題ってこう、いいですよね。
高さ 1 マスの通路に 2 × 2 のブロックを通せと言っているように見えますが、そんな幅の大きいブロックは帽子に入りません。よってこのレベルは logically impossible であることが証明できました *2
このステージには、いままで絶対に置かないようにしていた、下向きに突き出た幅 1 マスの壁があります。帽子を使ってこの壁を食べてしまえば、通路の高さは 2 マスに広がり、ブロックを通せるようになります。 なお、帽子を壁に持っていく途中でブロックが天井にくっついてしまいますが、壁を食べている帽子の左のつばを使って押し下げることができます。
余談として、ブロックが高さ 2 × 幅 1 であったとしても、高さ 1 マスの通路を通すことは不可能ですね。ブロックが帽子の中に完全に落ちてしまったら、取り出す術はないためです。 よって、この問題はブロックを 2 × 1 のものに置き換えても成立します(というか、昔のバージョンの 5-1 は実際そうなっていました)。 でもそうすると、取りうる行動の選択肢が増えてしまい、壁を食べることに気づかせるチュートリアルとしては不親切になってしまうので、あえて大きい 2 × 2 のブロックを配置しています。
5-2
下のターゲットに帽子、左のターゲットにブロックを置くべきなことはすぐにわかりますね。
ブロックを運ぶのに邪魔な 1 マス壁がありますが、5-1 を通ってきたパズルプレイヤーならやることはひとつ、帽子で食べてしまいましょう。 しかしそうすると、帽子内部の一番上に壁が配置されている 状態になるので、この帽子にはもう入ることができず、ゴールは達成できません。
そんな風にして壁を飲み込んだ帽子の挙動がわかったところで、この問題では壁を食べることなく、ブロックを壁の上側を通過して右に運ぶことができます。2 ステージ目にして「実は壁を食べない」が解法なのはあんまりよくない気がしますが……
5-3
帽子とブロックをそれぞれ縦穴に落とし込むステージです。 でも幅 1 マスの穴に帽子を落とすにはつばを両方折らないといけなくて、そうすると帽子を下に押せない…… わけではないですね。今度こそ壁を食べて、壁が入った箱には入れず、代わりに押してしまう ことを利用します。
今回は、食べられる壁が左右 2 か所にあります。上のブロックを取り出すためには左の壁を食べたくなりますが、そうしてしまうと帽子の左右両方のつばを折ったタイミングで部屋の左右どちらかの壁に帽子が張り付いてしまい、ターゲットまで持っていくことができません。 よって、右の壁を食べるのが正解です。例の頻出テクニックを使えばブロックを押し下げることができるので、その後右のつばを折ってから右の壁を食べ、左の 2 マス壁で左のつばを折れば解けます。
5-4
セクション 5 の最後もまた引っ掛け的な問題です。このセクション、なんか全体的に意地が悪くないか?
最終形としては右のターゲットに帽子、左のターゲットにブロックを置きたいですが、素直にブロックを置くとゴールへの道が分断されてしまいます。では邪魔な 1 マス壁を食べてしまえばよいかというとそうでもなく、帽子に入れなくなるのでやはりゴールできません。 唯一の解答は、ゴールすぐ左の 1 マス幅の壁を食べて、2 つのブロックで 2 個のターゲットを埋めることです。
ここまでで全 7 セクション中 5 セクション、ステージ数としては 42 問中 22 問の解説が終わりました。
はい、残りステージ数からもわかるように、終盤 2 セクションがこのゲームの本番、いちばん楽しいパートです。 というか、そういった楽しいパートに早くたどり着けるようにするために、前半のセクションは意図的に問題数を絞っています。
それでは後半戦、次の記事に続きます。
Thinky Puzzle Game Jam 2 - 開発日誌 (3)
今回で完成させます。残り 12 時間ほど。
itch.io
実は自作ゲームを一般公開すること自体がはじめてであり、itch.io をゲーム開発者側として使ったことがありません。 そういう理解度のプラットフォームを時間ギリギリになってから触ると事故が起きるので、余裕がある今のうちにプロジェクトのページを作っておきます。
できました(この記事が投稿される頃にはこのゲームも一般公開されているでしょうので、上のリンクから完成したゲームが遊べます)
システム実装終了
セクション 7 でいい感じにオチがついてしまったので、セクションはこれ以上増やさない(もうギミックを追加しない)方針で行きます。 これで後は、既存ギミックの 新たな 面白い組み合わせを考えて、それを実現させるステージを作っていくのみとなりました。残り 10 時間、現在 35(4 + 5 + 4 + 4 + 4 + 6 + 8)ステージが用意されています。
嘘でした
ちょっと足しました
やり残したこと
時間制限などの理由で実現させられなかったアイデアを書き下しておきます。
- 帽子の向き・回転:上向きに口が開いた帽子だけでなく、4 方向すべてに対応する。帽子を回転させるギミックを用意して、帽子の中にブロックを入れて回すのに用いるなど。
- 複数の帽子:帽子を複数個用意する。帽子の中に他の帽子を入れたい。
- ワープ帽子:Patrick's Parabox でいう clone 箱の働きをする。セクション 7 でやりたかったことは「ブロックの切断」であり、これをワープ帽子で実現する方向性も考えていた。でもあまりにも Patrick's Parabox 寄りになってしまうので今回は避けた
バグ発生
残り 1 時間半。いま気づけてよかった~~~
まだ発見できていないシステムのバグ(オブジェクトが想定と異なる挙動をする)やパズルのバグ(非想定解)もきっとあるんですけど、独力 48 時間でそれを潰し切るのは無理があります。もし変なこと起きたらごめんなさい
残り 1 時間、新たに 3 つコーナーケースを修正しました ほんとわんさか出てくるな…… 「そういえばこのパターンやってないじゃん!これを要求するステージ作ろ~~」と頭の中で考えたアイデアをステージに起こしてみると、当然そのパターンはいままで実際には一度も行われていなかったものなので、バグっていることがあるんですね~~~
ステージ実装終了
そろそろ新規ステージを作るのもよしたほうがいいですね。クリアチェックやバグ探しに専念します。
1 個バグが見つかった やっぱり公開直前のプレイテストは大事
とりあえず、どのステージにも解法が存在する というパズルゲームとしての最低限度の条件は確認できました。全 42(4 + 5 + 4 + 5 + 4 + 10 + 10)ステージをもって開発終了です!
完成!!
リンクを再掲しておきます。ぜひ遊んでみてね どっかでバグが出たらほんとごめんなさい
帽子がけっこう面白い挙動を示してくれたので、とてもいいパズルになりました。やはり「テーマ」というものの力は偉大ですね。自分ひとりでは思いつけなかったアイデアを生み出せる
ある程度開発時間を残しておいて、リリース後に出たバグや非想定解を直すのに充てたかったんですが、あと 30 分弱しか残っていません。ギリギリまでステージ制作してるから……
つづく?
Thinky Puzzle Game Jam 2 - 開発日誌 (2)
引き続きパズルを作っています。 前回は作業が終わった後にまとめてやったことを書き起こしていましたが、今回は作業中にいま取り組んでいることをメモしていく形式で書いています。
ところで仮タイトルが『A Magical Hat』なんですけど、このままだとひねりが無さすぎる
帽子の内部表現
現在、帽子の中身を表現する方法として、帽子の上にいま中がどんな状況かを表すメタデータ(「空」「プレイヤー」「ブロックが 1 個」「ブロックが 2 個」……)を乗せて識別するという手段をとっているのですが、この方式だと新ギミックを増やすのが厳しいことに気づきはじめました。 新ギミックを帽子の中に入れることを考えると、帽子の中身が取れる状態数が爆発的に増えていきますからね~~
そこで、ステージの端に「帽子の中身」を表す幅 1 の空間を隠しておき、その中で帽子の中身をシミュレーションすることにしました。
高さ 2 のブロックの下半分が収納されている様子です。 内部表現にパズル盤面を使っているため、「無限の深さを持つ帽子」というコンセプトは表現できなくなりますが、深さが 1 マスより大きい時点で十分 magical hat なのでまあいいでしょう。 なんなら、深さが有限であることが効いてくるステージも作れるようになりますしね
ところでさ、だんだん Patrick's Parabox に見えてきてしまって困っています
見えない盤面
ところで、最終的に帽子の中身は見えている(帽子にいま何が入っているかをパズルプレイヤーが記憶しておかなくていい)ほうが thinky puzzle game の精神に即しているだろうか? このまえ sokobond express の体験版が出ましたが、アレ実際に動かしてみるまで分子がどの位置を通るかが可視化されないんですよね。複雑な形の分子が移動する過程でどの領域を占領するのかがを頭の中で考えるのがかなり難しかった覚えがある
今回作ってるパズルは、見えない部分が線型でわかりやすい(幅 1 マスの)構造しか取らないので、まあ見えなくてもそんなに不便は感じなさそう? 表示しようと思うと「帽子の中」感がある UI にしないといけなくて、そこを面倒くさがっています
ここまで書いて気づいたんですけど、作業時間とこのメモを書く時間が混ざって区別できなくなるので、作業時間の制限がある中でこういうちゃんとした形のメモを取るのはあまりよくないのでは? 以降はもっと雑に書きます
スパゲッティコード
歴史的経緯により、ブロックは「隣のブロックと連結しているか」、壁は「隣の壁と連結していないか」という形で連結情報のデータを持たせてしまったので、とても統一感の感じられないコードができあがっています。壁(動かない)とブロック(動く)の違いによる処理の分岐の多さもあいまって、そろそろコードが読めなくなってきました。ジャムのいいところでもあり悪いところでもある「短期間だけ読めればいいコードを書ける」という性質が強く出ていますね
「不可能」のチュートリアル
ある操作が できない ことをパズルプレイヤーにうまく伝えるのって難しいですよね~~
それができないことを逆手に取ったテクニックが存在するならば、それを想定解として用意してやればいいんですけど、そうでない場合が特に大変です。想定解にたどり着く前に、ある操作が不可能であることを気づかせる "間違った試行" へと、うまくパズルプレイヤーを誘導しなければいけないですからね。
でも、ある操作が できる ことを伝えるのもそれはそれで難しさがあるか じゃあ全部むずいわ
結論:いいチュートリアルを作るのは難しい
特に、いままでとは全く異なるタイプの仕様とか、突飛な発想を要求する(thinking outside the box)タイプのギミックを初登場させるときのチュートリアルにはいつも苦心させられます。
それにしても、A Monster's Expedition の初航海はめちゃめちゃよくできてるよな~~~~~
折り返し
作業時間がトータル 24 時間になったところで、現在 19 ステージが完成しました。 登場ギミックごとに 6 セクションに分かれていて、それぞれ 4, 5, 4, 2, 4, 2 ステージが揃っています。 余裕があればもう少しセクション数も増やしたいですが、まずはセクション 6 のギミックのバグ取りとステージ作成だ……
処理順問題
これが生じたということは、ゲームルールが相応に単純ではないものになってきたということです。
ある 1 マスブロックが帽子のつばがあるマスに横から移動してきて、その上のマスに下向き接着ブロックがあった場合、ブロックの接着処理とつばが折れるかどうかの判定の順番によって、つばが折れるか折れないかが変わってきます。
これでプレイヤーが左に動いたとき、つばは折れるのか? ということです。どっちにしよう……
ちなみに、現行の実装だとこれは折れるようになっているんですが、ちょっと変えた以下のパターンだと折れません。
ある意味「見た目通り」なんですが、この 2 パターンの結果が違うのはけっこう混乱を招きそうですね…… ということで、どっちかに統一したいんですが、どっちに統一するにしても実装がめんどくさいよ~~
あれ、何もしてないのに統一された(?????)
バグとの闘い
正確には何もしてなくはなくて、コードを少し入れ替えた結果なんですが、これ狙ってできるものじゃなくないですか?? バグをひとつ直すためにコードを入れ替えることで別のバグが出てくる可能性もありますし、やっぱ puzzlescript むずかしい気がしてきた
勝利
バグをなだめることに成功したので、ステージを増やしています。 29 時間が経過した現在、5 時間前から 7 個増えて 26(4 + 5 + 4 + 3 + 4 + 6)ステージになっています。 あと 19 時間、まだまだギミックを増やすのに十分な時間がありますね
まとめ
セクション 7 とその 5 ステージを追加したところで残り 15 時間です。 やっぱり後半のステージはそれまでのギミックとのかけ合わせで色々できて楽しいですね~~
つづく
Thinky Puzzle Game Jam 2 - 開発日誌 (1)
合計 48 時間までの作業でパズルゲームを作ろうとしています。 現段階での進捗がいかほどなのかを記録として残すために、この記事を書いています
『Magician's Hat』というテーマを聞いて 100 人中 80 人が思い浮かべそうなアイデアである「帽子の中が広い空間になっていて、物を入れたり出したりする」をせっせと実装しているので、ネタ被りしそうで超こわいです
そこで工夫として、帽子のつばの部分にも当たり判定を設けることにしました。帽子の 1 マス隣にいる状態で、帽子を上下に押すことができます。 こうすると困るのが、つばが壁に横からぶつかったときの挙動ですね。Stephen's Sausage Roll よろしくブロックに突き刺して動かす…… のはさすがに無茶なので、大人しく折れて壊れるようにしておきました。 すると不思議なことに、「帽子の内部は縦には無限に広く、横幅は 1 である」というキーコンセプトと合わさって、この帽子は横方向には動かしやすい(内側から左右に押すこともできる)のに対し縦方向には動かしにくい(帽子に入って底を押すことはできない、つばを両側とも折ってしまうと下に押すことが不可能になる)というパズル性が生まれてきました。いいですね
ちなみに、せっかくの機会なのでと、puzzlescript をはじめて触ってみています。 文法にそこはかとない A = B 感を感じている
puzzlescript 初心者なりに最初 6 時間ほどでゲームの基本システムを組んだので、残り時間でおもしろいステージや新ギミックを追加していきます(ここまでで作業 14 時間が経過していて、現在の進捗は 17 ステージ)
つづく
Patrick's Parabox - 無限入口 (4)
前回までで、無限入口の飛び先がどうなるかについての解説が完了しました。
今回は打って変わって、箱に入った位置 が無限入口に与える影響について見ていきます。
無限入口への転移
このゲームでは、隣り合った部屋の間を「転移」するという仕様が存在します。 このシステムを使うと、部屋に入るとき、部屋の辺の中央ではない部分へと進入することができます。
こちらは、第 1 回で紹介した実験の図です。 今までの話をまとめると、この一番外側の緑の部屋に対しどの高さから入るかによって、次のように挙動が分岐することがわかります。 *1
- より高い位置に入ると、単に本体に 1 回入る。
- より低く より高い位置に入ると、本体に 1 回、クローンに 1 回入る。
- より低い位置に入ると、本体に 1 回、クローンに 2 回入り、無限入口が発動する。
ただし、本体の下端を高さ 、上端を高さ としています。
このようにして、転移を用いて無限入口を発動させることもできるわけですが、これに関してひとつ面白い性質があります。 実は、箱 X の無限入口が発動したとき、その行き先 X ε に入る位置は、箱 X に入った位置と同じ位置 になります。 以下の例で詳しく見ていきましょう。
ケース 1
まずは、上で紹介した実験と同様の構成で試してみます。
この通り、ε に対して辺の中央からズレた位置に飛ぶことができました。 この現象について、順を追って説明します。
まず、縦 7 マスの青い部屋の下から 2 マス目に位置するプレイヤーが右に移動します。 このマスは青い部屋の高さ から の範囲を占めていて、プレイヤーはそのマスのちょうど中間の高さである の位置から部屋を出ることになります。
すると、プレイヤーは緑の本体に同じく高さ の位置から入ります。 ここで は よりも小さいので、プレイヤーは緑の部屋に 3 回入ることになり、緑の無限入口が発動します。
それにより、プレイヤーは 同じく高さ の位置から 縦 5 マスの部屋である緑 ε に入ります。 *2 このとき、 は よりも大きく よりも小さいので、プレイヤーの行き先は下から 2 マス目になります。
数値に起こすとわかりにくいので、ビジュアル的に理解するのが一番ですね。 プレイヤーの重心(中央の位置)が部屋間を転移していって、もし無限入口に当たったらそのループの起点となる箱を ε に置き換えて考えればよいわけです。
ケース 2(Infinitesimal Shift 2)
もうひとつ、Infinitesimal から例をひっぱってきます。当然ながら Infinitesimal の具体的なステージに関するネタバレを含む ので、その点は注意してください。
まず、プレイヤーは青の高さ の位置から出て、同じ高さ の位置から緑クローンに入ります。ここで、縦 7 マスの部屋において高さ はどの位置にあたるかというと、
という変形を行うことで、この高さは「下から 5 と 5/6 マス目」、すなわち「下から 6 マス目の中で高さ の位置」であることがわかります。
そしてなんと、緑の部屋の対応するマスには、緑の本体が置いてあります。 よってプレイヤーは、その高さ の位置から緑の本体に入ります。これは最初に緑のクローンに入ったときと同じ高さであるため、以降こうして緑の本体への進入がループすることがわかります。 *3 まあ、こんな計算しなくても、プレイヤーの目の前が "無限に再帰している" ことは見て取れるので、無限入口が発動しそうだということは感覚的にわかるかと思います
ともかく、緑の無限入口が発動し、プレイヤーは高さ の位置に飛ばされます。 今回は緑 ε も縦 7 マスの部屋であり、高さ がその下から 6 マス目にあたることは先ほど確かめたので、プレイヤーは最終的に上の画像の通りの位置にたどり着くわけです。
無限入口と転移の組み合わせは、本当に色々なことができて楽しいです。 そもそも Infinitesimal というワールドを作った(ひいては Patrick's Parabox のカスタムステージを作り始めた)のは、この挙動を生かしたステージを作りたかったからだと記憶しています。
*1:ちょうど や の位置に入ったときの挙動は難しいので、ここでは触れません
*2:余談として、ステージにもともと置かれていない ε 部屋に無限入口で飛ぼうとすると、自動で 5 × 5 の部屋として ε 部屋が生成されるようになっています。
*3:無限入口を発動させるためには 3 回入ればよかったのですが、この例では理論上無限に入り続けることができるようになっています。Infinitesimal で転移を使って無限入口に入るステージは、すべてこのような理論的に美しい入り方が想定解になるように作問したので、3 回ルールを知らなくても解くことができます。
また、高校数学が分かる方向けに補足しておくと、緑の部屋に高さ の位置から無限回入れることは、
という無限等比級数を考えることでも理解できます。