是的,在你遊玩 溫度計謎題 時,溫度計可以完全留空——只要每個行列提示仍符合其宣告的總和,將路徑完全留空就是一種合法的選擇。這個謎題是一個固定的 4×4 邏輯方格,被劃分成八組雙格溫度計,每組的形狀就像真實的球莖與管柱儀器:一個圓形球莖格,加上其正交鄰格上的尖端格。唯一決定溫度計是否為空的結構性規則,是「球莖優先」的連續性規則:液體必須永遠從球莖開始,以一條不中斷的區塊向外推進,因此部分填充的路徑絕不會出現懸浮的尖端或兩個已填格之間的缺口。正因為這條規則對液體水位沒有設下限,一支空的溫度計就只是水位為零,而這個盤面上所揭露的八支溫度計解法,刻意讓其中兩條路徑維持在零水位。這些空路徑仍然佔據方格——它們只是對所橫跨的列與欄貢獻零個已填格——而這正是當提示數小到可以容許一條空路徑時,你所需要的幾何配置。

允許溫度計留空的「球莖優先」規則
「球莖優先」規則是透過謎題的關卡系統在建構時強制執行的,而不是在事後以臨時驗證來處理。每支溫度計儲存一個介於 0 與其路徑長度之間的整數水位;實作接著會把已填部分渲染成 path.slice(0, level),這代表所渲染的液體會自動是溫度計從球莖開始的前 level 格。當這個整數為 0 時,切片結果為空,路徑上完全不顯示液體;當整數等於路徑長度時(在這個 4×4 盤面上為 2),切片就是完整的「球莖到尖端」鏈,溫度計即為全滿。Puzzle Thermometers 上的規則參考資料,以相同的「球莖優先」形式說明了這項連續性;Puzzle Genius Thermometers 的說明也交叉驗證了同一種「從球莖開始填充」行為,以符合行列總和。
從這個以切片為基礎的儲存方式,可直接推出兩個結論。第一,謎題會拒絕任何違反「球莖優先」幾何的輸入——負的水位、超過路徑長度的水位,或是陣列中溫度計數量錯誤,都會在盤面重新渲染之前被擋下。第二,由於每個格子只屬於一支溫度計,而八條雙格路徑恰好整齊劃分這個 4×4 方格,空路徑仍會在版面配置上佔有它的兩個格子;只是對行列總和貢獻的已填格數會降為零。這就是為什麼空溫度計並非花招:它是在某列或某欄的提示很小、卻又不能留下任何外觀含糊的格子時,能夠滿足條件的根本機制。
溫度計的三種合法狀態
由於水位是從 0 到路徑長度之間的整數,而這個 4×4 盤面上的每條路徑長度都是 2,因此每支溫度計只能處於下列三種合法狀態之一。這些狀態會直接對應到視覺外觀、驗證結果與分數貢獻。
| 狀態 | 水位值 | 已填格數 | 視覺外觀 |
|---|---|---|---|
| 空 | 0 | 0 | 球莖與尖端皆無液體 |
| 部分 | 1 | 1 | 僅球莖格填滿 |
| 滿 | 2 | 2 | 球莖與尖端皆填滿 |
空狀態是最容易被玩家懷疑的,因為渲染出來的盤面看起來不完整。事實上,水位 0 是消耗一條路徑最經濟的方式:只要周圍提示允許,它既不會貢獻行列計數,也不會擋住其他路徑,更不會造成矛盾。部分狀態代表球莖已填、尖端未填,這是解題過程中最常見的中間階段。滿狀態則是把一條路徑從頭到尾填滿,也是唯一能同時為行列總和貢獻兩個已填格的狀態。
用六次水位操作解開溫度計謎題
這個 4×4 盤面上所揭露的鍵盤完成步驟,使用六次 Space 操作,並以乾淨的 940 分作結。請依序走過下列流程,在溫度計謎題盤面上重現這套解法。
- 用方向鍵移動選取位置,直到游標停在格子 1,按 Space 設定該支溫度計的水位。
- 移到格子 3,按 Space 設定該支溫度計的水位。
- 移到格子 6,按 Space 設定該支溫度計的水位。
- 移到格子 9,按 Space 設定該支溫度計的水位。
- 移到格子 11,按 Space 設定該支溫度計的水位。
- 移到格子 12,按 Space 設定該支溫度計的水位。
- 讓第七與第八支溫度計保持不動;它們會停留在水位 0(空),只要每列與每欄的總和都符合其提示,驗證器就會接受。
- 確認各列總和由上到下為 3、2、3、1,各欄總和由左到右為 2、2、2、3。第九個已填格放下去後,分數會顯示 940。
依解題順序,八支溫度計的最終水位為 2、1、0、2、1、2、1 與 0。其中兩個 0 對應到保持留空的溫度計——這些路徑完全沒有貢獻任何已填格,但卻是讓欄提示 2、2、2、3 能在全盤僅有九個已填格的情況下達成的關鍵。如果你強迫把這兩條路徑都填滿,四個列提示中會有三個超出;如果你換成讓另一對路徑留空,最右欄的欄總和 3 又會湊不到。
行列提示如何加總
八個提示扮演的是嚴格的等式檢查,而不是上下界,因此列總和與欄總和必須與渲染後的盤面逐格一致。在所揭露的盤面上,由上到下的列提示為 3、2、3 與 1;由左到右的欄提示為 2、2、2 與 3。兩組數列加總都是 9,正好等於八支溫度計水位的總和:2 + 1 + 0 + 2 + 1 + 2 + 1 + 0 = 9。驗證器就是靠這個一致性來判定盤面已經完成。
| 約束 | 數值(由上到下或由左到右) | 已填格總數 |
|---|---|---|
| 列提示 | 3、2、3、1 | 9 |
| 欄提示 | 2、2、2、3 | 9 |
| 溫度計水位總和 | 2 + 1 + 0 + 2 + 1 + 2 + 1 + 0 | 9 |
每次按下 Space 之後,實作會根據宣告的路徑與水位,重新建構已填格的 Set。如果任何一列的計數超過其提示,驗證器會回報「列超填」的矛盾,但這次操作仍會計入你的操作次數。如果某列或某欄的格數不足,盤面仍然可以繼續遊玩,因為只要另一條橫跨該行列的路徑再合法地提高水位,仍可能補上缺口。只有當每列與每欄的總和都恰好等於其提示時,分數才會鎖定在當下的數值。
分數如何計算
這個謎題的分數遵循一個透明的公式:score = max(0, 1000 − 10 × level actions)。起始分數為 1,000 分,每一次用來設定或調低溫度計水位的 Space 按鍵,都會扣 10 分。用於標記空白推理記號的 Enter 鍵則完全不會影響分數,所以你可以自由地標記與取消,而不會損害成績。所揭露的六步鍵盤完成法,因此得分為 1,000 − (10 × 6) = 940 分。
如果你超過六步——舉例來說,把一條路徑填到水位 2,再降到水位 0,然後重新填回水位 2——每一次 Space 按鍵仍然會扣 10 分,所以分數會依照實際操作次數全額扣減,而不是只看淨水位變化。這個謎題的自動化測試套件證明,完整的六步鍵盤模擬會正好停在 940 分;任何乾淨完成、只使用六次 Space 按鍵的解法,都會重現這個數字。你的最佳成績只會保存在這個瀏覽器的 localStorage,一旦清除網站資料或更換裝置,這次紀錄就不會帶著走。
重新開始與老闆鍵,還能保留進度
「重新開始」控制項會把八個水位全部歸零、清除所有空白標記、把游標重設回起始格,並把分數重設為 1,000——當你想從頭驗證一個推論時,這是很實用的選項。連按兩次 Escape 會切換顯示一張共用的模擬試算表封面,在有人經過時把盤面藏起來;再按兩次 Escape 就會把盤面原樣還原,所有目前的水位、標記與分數都不受影響。因為這層封面只是視覺效果,老闆鍵繞道期間並不會遺失任何進度,你可以精確地回到離開時的同一個狀態。滑鼠、觸控與鍵盤都能使用,沒有硬體相依,也沒有額外下載的素材介入。
辨識空溫度計的實用技巧
當你開始一題新謎題時,請先掃過每個列提示與欄提示,並問自己哪些提示小到足以讓一條空路徑從中穿過。列提示為 1 代表該列只有一個已填格,因此任何橫跨該列的路徑,不是恰好貢獻一個已填格(水位 1/2,且球莖落在該列),就是貢獻零(水位 0,路徑穿過該列但不填)。在所揭露的盤面上,底列的提示 1 會逼出嚴謹的配置:該列中只能有一支溫度計被部分填滿,其餘路徑要不是保持留空,就是只填到它的球莖格。提示為 2 或 3 雖然給出較多餘裕,但絕對不足以讓該行列中的每支溫度計都填滿。
空溫度計最容易用排除法找出來:當某個提示已經滿足,某條路徑的尖端格又落在已完全計數的列或欄中時,把該路徑降到水位 0 往往合法,也能幫你在別處省下一次水位操作。只要每條行列總和仍然正確,驗證器就不會反對,所以空溫度計不只是被允許的狀態——在緊湊的 4×4 方格上,它通常是用來滿足嚴格列欄限制最經濟的做法。
想進一步了解,請參閱 不下載也能玩水管排序謎題嗎?可以。
想進一步了解,請參閱 方塊堆疊謎題規則:每次擺放都必須滿足的條件。