ビルディングパズルの解き方:Rooftopsのどの盤面も解ける方法

ビルディングパズルのテクニック8つを、使う順に紹介します。どれも実際のRooftopsの問題で、手順の前と後を並べています。最初の4つでやさしい盤面のほとんどが解け、最後の1つがむずかしい盤面の突破口になります。

このページはルールを知っている前提です。各行・各列に高さを1回ずつ入れ、外側の数字はその方向から見える屋上の数を表します。まだの方は、Rooftopsのルールは30秒で読めます。行は上から、列は左から数えます。マスの中の小さな数字はメモで、そのマスにまだ入りうる高さです。

今日のRooftopsで遊ぶ

テクニック1 · 基本

1の数字

外側の1は、そこから屋上がちょうど1つ見えるという意味です。最初のビルは必ず見えるので、それが奥をすべて隠すしかなく、それができるのはいちばん高いビルだけです。すべての1のすぐ隣のマスに、いちばん高いビル(5×5なら5)を書きます。メモも数えることも必要ありません。何より先にやりましょう。こうして置いたビルは、その行と列全体から5を除外するので、次の手につながることがよくあります。

1は、同じ行や列の残りについては何も教えてくれません。いちばん高いビルの奥は何があっても隠れるので、その行や列はまだ決まっていません。ただし反対側の端に役立つ数字があることもあり、奥のマスはその数字で決まっていきます。

使う前
使った後
前:最初の盤面で、3つの1を囲んでいます。1行目の右、4行目の左、3列目の下です。後:それぞれの隣に5が入ります。

探す場所:最初の盤面の四辺すべて。たいてい1が2つか3つあり、そこが最初の一手になります。

テクニック2 · 基本

最大の数字

1の反対が、盤面の大きさと同じ数字です。5×5の盤面なら5です。屋上が5つとも見えるなら、どのビルもほかを隠してはいけないので、どれも手前のすべてのビルより高くなければなりません。そうなる並びは1通りだけで、数字から離れるにつれて1、2、3、4、5と高くなります。その行や列を一度に埋めましょう。最大の数字は1よりまれですが、いちばん気前のいい数字です。5マスが決まり、交わる5本の行や列から高さが1つずつ除外されるからです。

最大の数字と1が同じ行や列の両端で向かい合っているときは、2つの数字は食い違いません。1から見えるのはその端にある5で、そこはちょうど階段の終わりです。この組み合わせに気づけば、両方の数字を正しく読めたかの確認になります。

使う前
使った後
前:3列目の上の5を囲んでいます。この列のいちばん下の5は、下の1からすでに決まっています。後:3列目は上から1、2、3、4、5です。

探す場所:盤面の大きさと同じ数字。見つけたら、同じ行や列の反対側に1があるか確かめます。

テクニック3 · 基本

端からの上限(いちばん高いビルとの距離)

2からN - 1までの数字は、高いビルを自分から遠ざけます。数字cなら屋上がc個見える必要があり、見えるビルはどれもいちばん高いビルの手前にあるので、いちばん高いビルの前には少なくともc - 1マスあります。5×5の盤面で4なら、5は少なくとも3マス奥に押し込まれます。同じ数え方で各マスにも上限がつきます。数字cの隣のマスは最大N - c + 1で、1マス奥に進むごとに1階ずつ高くできます。5×5の盤面で4なら、1か2、次に最大3、次に最大4です。

最初に四辺を見るときに、数字ごとにこの上限をメモに書きます。2はその隣のいちばん高いビルを除外するだけですが、3や4は行や列の一続きを小さなメモで埋めます。後のテクニックは、まさにそのメモを絞り込んでいきます。

使う前
使った後
前:最初の盤面で、3行目の左の4を囲んでいます。後:3行目の最初の3マスは、1か2、最大3、最大4になるので、5が入るのは4マス目か5マス目だけです。

探す場所:Nではない数字のうちいちばん大きいものと、そのすぐ近くのマス。

テクニック4 · 基本

残り1か所と残り1つの高さ

Rooftopsはラテン方陣でもあります。ブロックのないナンプレのように、各行・各列に各高さが1回ずつ入ります。そこから2つの簡単な確認ができます。「残り1か所」:ある高さが行や列の1マスにしか入れないなら、そこに入ります。「残り1つの高さ」:あるマスに高さが1つしか残っていないなら、それが入ります。見落としやすいのは残り1か所のほうです。そのマス自体は、まだ候補が多く見えることがあるからです。高さを1つ選び(いちばん高いものがよく効きます)、各行でそれがまだどこに入れるかを考えます。盤面にあるその高さのビルは、それぞれ列全体をふさぎます。

どちらも手軽なので、ビルを置くたびに確かめましょう。端の数字からの1手が真ん中の残り1か所につながり、それが交わる行や列から高さを1つ除外し、その行や列が次のマスを自然に教えてくれることがよくあります。

使う前
使った後
前:2行目。1列目、3列目、4列目、5列目にすでにある5を明るく表示しています。後:5は2マス目に入ります。この行で残っているのはそこだけです。

探す場所:盤面にいちばん多く置かれている高さ。足りない最後の場所がいちばん見つけやすくなります。

テクニック5 · 中級

向かい合う数字

1本の行や列の両端にある2つの数字は、組み合わせて使えます。いちばん高いビルは両側から見えるので、両方の数字に数えられます。さらに各数字は、残りの見える屋上をその手前に必要とします。2つの数字の合計がN + 1を超えることはありません。合計がちょうどN + 1なら余裕はまったくなく、いちばん高いビルは両側から同時に、数字cからcマス目に立ちます。5×5の盤面で4と2が向かい合うなら、5は4から4マス目です。3と3なら真ん中です。

合計がそれより小さくても、いちばん高いビルが立てる範囲は狭まります。一方の端から少なくともa - 1マス、もう一方から少なくともb - 1マス離れます。この範囲を残り1か所と組み合わせましょう。交わる列にすでに5があれば、最後のすき間が埋まることがよくあります。

使う前
使った後
前:3行目には左の4からのメモがあり、左の4と右の2を囲んでいます。4 + 2 = 6です。後:5は3行目の4マス目、つまり右から2マス目に立ちます。

探す場所:両端に数字がある行や列。合計してN + 1と比べます。

テクニック6 · 中級

2といちばん高いビル

行や列のいちばん高いビルが決まると、2の数字はとても正確になります。2から見えるのは、最初のビルといちばん高いビルだけです。つまり数字のすぐ隣の最初のビルは、いちばん高いビルとの間にあるどのビルよりも高くなければなりません。いちばん高いビルがすぐ後ろにある場合を除けば、最初のマスは残っている高さのうちいちばん低いものにはなりません。また、残っている中で2番目に高いビルは、最初のマスにあるか、いちばん高いビルの奥に隠れています。未定のマスが2、3個なら、これでたいてい全部決まります。

列と合わせて読みましょう。この例では、右から1マス目はその列にすでに4があるので4になれず、3に決まります。その手前のマスはさらに低くなります。いちばん高いビルが遠くにある2は、半分解けた盤面で最も強い数字の1つです。

使う前
使った後
前:2行目は、未定、5、2、未定、未定で、右の2を囲んでいます。後:5列目にはすでに4があるので最後のマスは3、その手前は1、最初のマスは4です。

探す場所:すでにいちばん高いビルが置かれ、間に未定のマスがいくつかある行や列の2。

テクニック7 · 中級

見える屋上の数で除外する

これは直前の3つのテクニックの背後にある、一般的な方法です。数字のある行や列で、未定のマスがいくつかあるものを選び、各マスのメモを1つずつ試します。その高さがそこにあったら、その行や列は正しい数の屋上を見せられるでしょうか。残りの高さのどの並び方でも無理なら、そのメモを消します。実際には、すべての並び方を書き出す必要はほとんどありません。何があっても見えるビル、たいていはいちばん高いビルと2番目に高いビルを見つけ、先に数えます。それだけで数字に届いているなら、その手前のビルはすべて隠れていなければなりません。

隠れるとは、手前にそれより高いものがあるということです。この考え方1つで、ほとんどのメモが消せます。数字といちばん高いビルの間にある高いビルは、さらに高いビルがその手前にない限り見えます。両端に数字があるなら、各メモを両方で試します。

使う前
使った後
前:5行目は5で始まり、右の3を囲んでいます。4が入れるのは2マス目か3マス目だけです。後:最後のマス、4、5ですでに屋上が3つなので、3は3マス目にも4マス目にも入れず、最後のマスは2か3です。

探す場所:数字のある行や列で未定のマスが3、4個あり、いちばん高いビルを置いたか、2マスまで絞り込んだもの。

テクニック8 · 上級

仮に置いて先を読む

むずかしい盤面では、どの行や列からも何も出なくなる場面が来ます。そうしたら、メモが2つあるマス、できれば数字の隣のマスを選び、片方を仮に置いたと考えます。そこからは、決まる手だけを追います。残り1か所、残り1つの高さ、端の数字など、選ぶ必要のない手だけです。すぐにどれかの数字から見える屋上が多すぎる、または少なすぎることになれば、仮の高さはまちがいで、そのマスにはもう片方が入ります。これは当てずっぽうではありません。仮の高さを残すことはなく、残すのはそれがだめだという証明だけで、証明が終わるまで盤面は何も変わりません。

たどる手順は短くし、数字から目を離さないようにします。各マスのメモが2、3個の行や列が、いちばん早く行き詰まります。矛盾が出ないまま長くなったら打ち切り、同じマスのもう一方の高さか、数字の隣の別のマスを試しましょう。

使う前
使った後
前:1行目と、2行目の右の2。最初のマスが3なら、1行目は自然に3、2、1、5、4と埋まり、2行目は5を1マス目、4を2マス目か3マス目に置くことになって、2から屋上が3つ見えてしまいます。後:最初のマスは4です。

探す場所:行や列がほぼ埋まっているところで、数字の隣にあるメモがちょうど2つのマス。

よくあるまちがい

  • 隠れたビルまで数える。数字が数えるのは見える屋上で、ビルの数ではありません。4の奥の3は、端にどれだけ近くても隠れています。
  • 奥のマスを忘れる。端からの上限は片側からしか来ません。数字から遠いマスの上限は、反対側の数字から来るか、どこからも来ません。
  • 2を「いちばん高いビルは2番目」と読む。2は屋上が2つ見えるというだけです。いちばん高いビルは、2マス目から反対側の端までのどこにでも立てます。
  • 仮の高さを書き込む。先を読むのは頭の中かメモで行います。仮のビルを置いてそのまま進めると、まちがった手が後の手の下に埋もれてしまいます。

練習

テクニックは、実際の盤面で何回か使うと身につきます。まず今日のRooftopsを解いて、それから過去の問題に進みましょう。入門の月曜日から手ごわい日曜日まで、これまでの毎日の問題がすべてあります。

今日のRooftopsで遊ぶ Rooftopsの過去の問題

Rooftopsの遊び方

Rooftopsを印刷する

よくある質問

ビルディングパズルで最初に探すテクニックは?

1と最大の数字です。考えなくてもビルが置けるからです。次に、ほかの数字の近くに端からの上限をメモし、各行・各列で向かい合う数字を確かめ、それから行と列の残り1か所と残り1つの高さに進みます。この順番で、やさしいRooftopsの盤面はほとんど解けます。

ビルディングパズルでいちばんむずかしいテクニックは?

仮に置いて先を読む方法です。1マスに高さを仮に置き、決まる手を、数字が成り立たなくなるまで追います。盤面が整理されていることと、短い手順が必要です。Rooftopsではむずかしい盤面だけで必要になり、ヒントボタンを押せば、どのマスで試せばよいかがいつでもわかります。

ビルディングパズルでメモは必要ですか?

4×4の盤面なら、全部頭の中で考えられます。5×5以上ではメモが役立ちます。端からの上限、見える屋上の数での除外、仮に置いて先を読む方法は、どれもメモを絞り込んで進めます。消したメモは、記憶よりずっと信頼できます。

なぜいちばん高いビルがそれほど大事なのですか?

行や列のいちばん高いビルは両端から見え、その奥をすべて隠します。だからその位置で、各数字から見えるものの大部分が決まります。まずいちばん高いビルが立てる場所を、次に2番目に高いビルの場所を探しましょう。低い高さはたいてい後から決まります。

ほかのゲームのテクニック