Orcantus

Guide

Signal(回転ネットワーク)の解き方 — 初級編: タイルの見方と境界からの確定

Orcantus Puzzlesの「Signal」は、正方形のタイルをタップして回転させ、1本の道ですべてのタイルをつなぐパズルです。この記事は、実際にプレイしてクリアするための解き方ガイドの初級編です。全3回构成で、初級編(この記事)はタイルの見方と、盤の端(境界)+隣のマスとの整合性だけで解ける基本を扱います。中級編(その2)は「一箇所だけ仮に置いて試す」判断が要る問題、上級編(その3)は未確定のマスが盤面の半分以上残る問題を扱います。

Note

この記事でいう「初級・中級・上級」は、この解説記事を3段階に分けた読み物としての順番です。Signal本体が問題ごとに表示する初級・中級・上級のラベル(difficulty.level)とは判定基準が異なるため、同一視しないでください。もっとも、初級編で使う実例は、Signal側のラベルでも実際に「初級」と判定された問題です(後述)。

結論。Signalの合法手は「タイルを1回タップして時計回りに90°回転させる」ことだけ。盤の端に近いタイルほど、置ける向きの数が形状によって早い段階で1通りに決まり、そこから隣接マスとの整合性を辿るだけで、多くのマスが「試さずに」確定する。 この記事の実例(4×4・16マス)は、この境界+隣接の確定だけで最後の1マスまで解け、一度も「仮に置いてみる」判断を必要としません。

タイルの見方: 5つの形と、回転してもしなくても形は変わらない

各タイルは、上下左右のどこに線が伸びているかで見た目が決まります。伸びている方向の数によって、次の5形状のどれかになります(4×4盤の場合)。

形状 伸びる方向の数 回転でできる見た目の種類
端点 1方向 4種類(上/右/下/左)
直線 2方向(向かい合う) 2種類(縦/横)
エルボー(L字) 2方向(隣り合う) 4種類
T字 3方向 4種類
十字 4方向 1種類(回転しても変わらない)

タップしても形状そのものは変わりません。 1回タップするたびに、接続方向の集合全体が時計回り90°分ずれるだけです(直線なら縦↔横の2状態、十字なら常に同じ見た目、というように)。つまり、あるマスに「端点」タイルが置かれているなら、そのマスの答えは最後まで「どこか1方向に伸びる端点」であり、直線や十字に変わることは絶対にありません。解くとは、形状を変えることではなく、すでに決まっている形状の向きを当てることです。

盤中央には少し大きい丸(信号源)があるマスが1つあり、そこから実際につながっている(=「点灯」している)マスが色で示されます。画面下の「◯ / 総マス数 接続」という表示が、今つながっているマスの数です。全マスが点灯し、かつ「接続完了」の表示が出たときだけがクリアです。 部分的に多く点灯していても、途中で線が枝分かれしていたり輪(ループ)ができていたりすると、その形はクリア条件を満たしません(Signalの完成条件は「輪がなく、全マスが1本の木でつながっている」ことです)。

使える操作(合法手)

回転以外の操作(タイルの入れ替え・削除など)はありません。

実例: 4×4盤を境界+隣接だけで解く

n=4・シード"notes-solve-easy"・難度指定easyで生成した盤面です(E.generate(4, 'notes-solve-easy', 'easy')、1回目の試行でこの条件を満たし、実際にSignal側の難度判定でもlevel: "easy"でした)。出題時点(タップ前)の各マスの形状と、伸びている方向は次のとおりです(行1列1が左上)。

列1 列2 列3 列4
行1 端点(上) 端点(下) T字(右下左) エルボー(上左)
行2 T字(上右左) 直線(右左) エルボー(上左) 直線(上下)
行3 エルボー(下左) T字(上右左) エルボー(上左) 直線(右左)
行4 端点(左) エルボー(上左) 端点(左) 端点(下)

手順1: 盤の端に接するマスから、形状だけで向きが1通りに決まるものを探す

盤の端(row1・col1・row4・col4)にあるマスは、外側に線を伸ばすことができません。この制約だけで、いくつかのマスは他のマスの状態を見るまでもなく向きが確定します。

この時点(境界の制約だけ)で、16マス中5マス(行1列3・行1列4・行2列1・行2列4・行3列4)が、他のどのマスも見ずに確定します。これはSignal側の難度判定が記録するboundaryFixed(境界だけで確定するマス数)と一致し、この盤面ではboundaryFixed: 5でした。

手順2: 確定したマスから、隣のマスへ「つながる/つながらない」を伝える

境界だけでは決まらない残り11マスは、隣接マスとの整合性で芋づる式に確定します。ルールは単純です。あるマスが「隣へ伸びている」と確定していれば、隣のマスは必ずこちらへ伸び返さなければならず、逆に「隣へ伸びていない」と確定していれば、隣のマスはこちらへ伸びてはいけません。

具体例で追ってみます。

このように、「まだ形の向きが決まっていないマス」でも、隣のマスがすでに確定していれば、端点や直線のように選択肢が少ない形状から先に、次々と1通りに絞り込めます。この盤面では、この隣接チェックを3巡繰り返すだけで、16マス全部が確定します(Signal側の難度判定でもlocalRounds: 3・needsSearch: false、つまり「仮置きして試す」場面が一度もなく済んでいます)。

手順3: 確定した向きに合わせてタップする

最終的に決まる16マスの向きと、出題時点からの向きとの差(時計回りに何回タップするか)は次のとおりです(マス番号は行1列1を0として、行→列の順で0〜15)。

マス:        0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
タップ回数:   2  3  0  3  1  0  0  0  2  2  3  1  2  0  1  2

合計22回のタップです。実際にこの回数どおりにタップした結果が、この記事の執筆時点でE.isSolved(board, 4)により正解と一致することを確認済みです(Node.jsでsignal/engine.jsを直接実行して検証。実際のブラウザUIでも、盤中央(行3列3、マス番号10)の信号源からのBFSで全16マスが点灯し、進捗表示が「16 / 16 接続」になることと対応します)。

誤りやすい判断

読者の検証方法

この記事が確認していないこと

この結果が言っていないこと

  • 検証はsignal/engine.js・signal/app.js(エンジンv3、2026-09-29時点)を対象にしています。将来の版で表示・判定基準が変わる可能性があります。
  • 表内の形状名(端点・直線・エルボー・T字・十字)は、この記事独自の呼び方です。Signal本体の画面上には形状名の表示はなく、実際のUIはタイルの絵と点灯状態のみで判断します。