can a thermometer have a gap in its fluid when i play thermometers puzzle
溫度計謎題:溫度計的液體可以有缺口嗎?

簡短回答:完全不允許任何缺口

在溫度計謎題中,溫度計的液體永遠不能出現缺口,因為每一個已填滿的儲存格都必須形成一條從圓頭的球泡開始、向前延伸至尾端的單一連續前綴,沿途不能跳過該溫度計路徑上的任何一個儲存格。

這條規則是由謎題的設計所強制執行的,而非依賴玩家自律。固定 4×4 板上的八條雙格路徑以有序陣列的形式儲存,而您為每支溫度計指派的水位會明確告訴引擎要從索引零(即球泡)開始填滿幾格。水位為一時僅填滿球泡。水位為二時則填滿球泡以及沿同一路徑的下一格。解題器沒有任何可接受的水位數值,會在尾端填入液體卻讓球泡保持空白,也不允許在同一支溫度計上出現兩個已填滿儲存格之間夾著一個空白儲存格的情況。

如果您認為自己在路徑中段看到了缺口,那麼產生該缺口的動作早在板面更新前就已被拒絕,或者您實際看到的是某支部分填滿溫度計尾端的空白段。允許最後一個填滿格之後出現空白尾巴——只有同一路徑上兩個已填滿儲存格之間的缺口是被禁止的。若想消除疑慮,請開啟任一支溫度計的球泡與尾端,依序檢視其儲存格。液體應佔據第一格或前兩格,其餘保持空白,絕不會在中間出現任何填充。Puzzle Thermometers 所維護的規則參考資料描述了相同的連續填滿行為,而 Puzzle Genius 也獨立交叉驗證了同一系列謎題的「球泡優先前綴」特性。

這就是為什麼此謎題的感覺與一般的「填格子」邏輯方陣不同。每支溫度計的行為更像一個滑桿,而非一袋各自獨立的儲存格;這表示您不能將溫度計視為四或五個獨立決策,而應視為一個長度受路徑本身限制的有序決策。

為什麼溫度計謎題中存在「禁止缺口」規則

連續填滿規則並非任意設定的裝飾,它源自真實水銀溫度計的運作方式:當溫度上升時,液體會從球泡向外膨脹,因此根據定義,在向前移動的水銀柱後方不可能存在被困住的空白氣泡。謎題借用了這個物理比喻,並將其轉化為邏輯限制,這就是驗證器能瞬間拒絕非法設定的原因。

實際上,正是這項限制讓謎題可在不靠猜測的情況下解出。每支溫度計都是一個具有小型合法水位定義域的一維變數。在固定的 4×4 板上,八支溫度計各長兩格,這表示每條路徑僅有三個合法水位:零、一或二。結合八條行列線索後,搜尋空間會縮減至寥寥數種可能,而「液體絕不能有缺口」這條規則正是用來剔除其餘可能性的關鍵。

舉例而言,假設某支溫度計水平擺放,球泡位於左側。若其所在列的線索指出該列需要三個填滿格,而所在行的線索指出該行需要兩個填滿格,則該溫度計仍可合法地維持空白、半填滿或全填滿——但絕不能是「僅右格填滿」或「左格空白而右格填滿」。最後一種情況正是此規則所禁止的缺口,而謎題的水位陣列結構根本不容許您輸入這種設定。

反之亦然:若一支溫度計的球泡位於需要許多填滿格的列上,它就不可能維持空白;而一支尾端位於已達線索上限的行中的溫度計,若再向上提高水位,就會讓該行超過線索並觸發回報的矛盾。缺口規則與線索規則相輔相成,引擎將兩者統一為單一的驗證檢查,以決定是否接受某個動作。

在 4×4 板上設定連續液位

固定的溫度計板寬四格、高四格,分割為八支雙格溫度計。每條路徑的一端是圓頭球泡,另一端是方形尾端,與行列相關的線索則印在方陣外側。若想在不產生缺口的情況下設定液位,請在 溫度計謎題可遊玩板 上依照下列步驟操作。

  1. 使用方向鍵移動選取範圍,直到游標停在您想調整的溫度計球泡或尾端上。
  2. 按下空白鍵將該溫度計的液位提高一格,從球泡開始。第一次按下空白鍵僅填滿球泡;第二次按下則會填滿球泡及沿路徑的下一格。
  3. 若所選段落已填滿,再次按下空白鍵會將水位降回緊鄰的前一個段落。每按一次空白鍵,水位僅變動一格,因此不會有跳過某格而不慎製造缺口的風險。
  4. 每次按下空白鍵後,請在心裡檢查行列線索是否更接近滿足。由上至下的線索依序為 3、2、3、1,由左至右則為 2、2、2、3——合計正好要求板面上有九個填滿格。
  5. 若某列或某行已達其線索上限,請勿在該線上再增加液體。驗證器會將任何導致該列或該行超過線索的動作標記為矛盾,並標記出需要處理的過量填入。
  6. 在空白儲存格上按下 Enter,即可放置或移除一個可選的空白標記。空白標記僅為私人筆記,永遠不會影響溫度計能否產生缺口,因為驗證器讀取的是液位而非標記。
  7. 當第九個填滿格出現時,所有行列的總數皆恰好符合,謎題即解完。您的分數會根據所使用的空白鍵動作次數,從起始的 1,000 分進行更新。

若板面隨時拒絕您的動作或標示出警告,其根本原因幾乎總是您嘗試將水位提高到超過尾端,或是該動作會讓某列或某行超過其線索。這兩種情況都會被回報為矛盾,板面的「禁止缺口」特性也因此得以保留。

公開的六步解法與分數

由於每個方格都恰好屬於一支溫度計,且每支溫度計恰好長兩格,整個板面狀態可寫成一個由八個介於零到二之間的整數所組成的陣列。此固定 4×4 板的公開解法為水位向量 2, 1, 0, 2, 1, 2, 1, 0,加總後正好是九個填滿格——與行列線索所要求的數量完全一致。

溫度計路徑長度公開水位填滿的儲存格
122球泡與尾端
221僅球泡
320無
422球泡與尾端
521僅球泡
622球泡與尾端
721僅球泡
820無

使用鍵盤設定這些水位時,意味著要依序選取 1、3、6、9、11、12 號的球泡或尾端儲存格,並逐一按下空白鍵。共需要六次空白鍵動作,因為只有六個非零水位需要按鍵——兩個水位為零的空溫度計保持為零。分數公式很簡單:您從 1,000 分開始,每次按下空白鍵扣 10 分,因此公開的六步路線最終得分為 940。

值得特別指出的是,這個分數取決於水位動作的次數,而非您的思考方式。七步正確解法可得 930 分,九步正確解法則得 910 分。被判定為無效的動作不會扣分,因為驗證失敗時水位陣列根本不會被修改。

驗證、分數公式與重新開始行為

每次按下空白鍵都會觸發一次完整的驗證流程。引擎會在每次動作後根據八條路徑及其水位重建已填滿儲存格的集合,因此「禁止缺口」的特性是持續受到檢查,而非僅在最後檢查一次。水位必須是介於零到路徑長度之間的整數,任何會將水位推過尾端的動作都會直接被拒絕。任何會讓某列或某行超過其線索的動作會被回報為矛盾,但該動作仍會被撤銷,這表示分數扣分僅適用於實際被接受的動作。

動作結果對分數的影響對板面的影響
空白鍵動作被接受−10 分水位提高或降低一格
水位超過尾端而被拒絕無變化無變化,動作未套用
回報某列或某行過量填入無變化顯示矛盾警告
在空白儲存格上按下 Enter 且被接受無變化切換可選的空白標記
重新開始恢復為 1,000八個水位全部重置,標記清除

重新開始會將所有溫度計的水位歸零、移除所有空白標記、重設游標、恢復 1,000 分的起始分數,並移除任何作用中的矛盾警告。您最佳的完成分數僅儲存於此瀏覽器的 localStorage,因此下次使用同一瀏覽器載入時仍會存在,但不會跨裝置或帳號同步。沒有計時器、沒有音訊、沒有下載的資源,也不需要帳號,因此重新開始本質上是無損的。

鍵盤之外的操作方式

滑鼠與觸控使用者也有對應的操作方式。點擊球泡或尾端會以與空白鍵完全相同的方式,透過所選段落設定水位;而在空白儲存格上按右鍵選單,則會放置或移除在鍵盤上由 Enter 處理的空白標記。每種輸入方式最終都會抵達相同的水位陣列,因此無論您選擇哪種玩法,「禁止缺口」規則都會以相同方式強制執行。

若您需要暫時離開螢幕,請快速連按兩次 Escape 來顯示一個共用模擬試算表畫面以隱藏謎題,再次快速連按兩次 Escape 則會回到您離開時的精確板面狀態。老闆鍵並不會觸發重新開始,因此封面顯示期間,您目前的水位與標記都會被保留下來。

介面本身採用回應式語意化 CSS 格線而非 canvas,且每個儲存格都會向輔助技術宣告其位置、球泡或尾端的角色、填入狀態及標記狀態。球泡、尾端、液體、空白標記、線索、選取、警告與表面皆取用網站的 CSS 變數,這也是為什麼「禁止缺口」的行為不僅合乎邏輯,也清晰可見——部分填入時,液體永遠呈現為從圓頭球泡開始的連續團塊,而不會在尾端附近出現孤立的點。

延伸閱讀:液體物理謎題:7×7 路徑規劃遊戲的運作方式。

延伸閱讀:時鐘時間謎題攻略:五個時鐘的角度數學。