Battleships Puzzle 是一款五乘五的單人邏輯解謎遊戲,玩家需要在盤面上放置一組已公開的三艘船艦隊,讓每個印刷出的行列提示都吻合、所有船艦皆為直線,且任何兩艘船艦即使對角線相鄰也不能互相接觸,透過六次空白鍵動作完成盤面即可獲得 940 分。與雙人對戰那種對手向隱藏船艦開火的猜測遊戲不同,在 Battleships Puzzle 中所有決策都發生在同一個可見的格子上:你必須找出艦隊的位置,而不是攻擊它。遊戲內建的固定盤面包含一艘長度 3 的巡洋艦、一艘長度 2 的驅逐艦,以及一艘長度 1 的潛水艇,共佔據六個格子。Conceptis 發布了正統的單人 Battleships 規則,而相同的直船、不相鄰、艦隊組成與行列數量限制也獨立出現在《Games Magazine》的印刷指示中,因此這個邏輯符合長期以來的標準,並非一次性設計。

how to play battleships puzzle
how to play battleships puzzle

什麼是 Battleships Puzzle

Battleships Puzzle 是一款單人邏輯解謎遊戲,有時也稱為 Solitaire Battleships 或 Battleship Solitaire,目標是利用印刷出的行列總數來找出小型艦隊的位置。玩家使用固定的五乘五格子、已知的艦隊形狀,以及每一列每一行旁邊印好的提示。每個提示會明確指出該行列中有多少格是船艦片段。當擺放的艦隊同時滿足所有行提示、所有列提示、宣告的艦隊形狀、不相鄰規則以及直船規則時,謎題即告解開。

它與經典紙筆版 Battleships 遊戲最大的差別在於沒有對手猜測的環節。提示與驗證同時顯示在同一個畫面上,因此每一次船艦擺放不是推進解答,就是產生矛盾。由於提示之間彼此緊密約束,六格艦隊配上小型 5x5 盤面,讓搜尋範圍維持在可用手動在幾分鐘內檢查完的程度。

盤面配置、艦隊與提示

Battleships Puzzle 內建的固定盤面是一個由十個提示包圍的五乘五方格盤面。從上到下讀,行提示為 3、0、1、1 和 1。從左到右讀,列提示為 1、2、1、0 和 2。盤面宣告的艦隊正好是一艘長度 3 的船、一艘長度 2 的船和一艘長度 1 的船。最終會佔據六個格子,剩餘十九個格子為海水。由於行總數與列總數必須對應同一組六個格子,行列提示之間緊密耦合:只滿足其中一邊而不管另一邊是不可能的。

行列提示(由上至下 / 由左至右)解開盤面上的佔據格
第 1 列3(0,0), (0,1), (0,2)
第 2 列0
第 3 列1(2,4)
第 4 列1(3,4)
第 5 列1(4,1)
第 1 行1(0,0)
第 2 行2(0,1), (4,1)
第 3 行1(0,2)
第 4 行0
第 5 行2(2,4), (3,4)

全為零的那一行是極具威力的一條提示。任何提示為零的行列都必須完全為海水,這也代表根據不相鄰規則,該行列的所有鄰格,包括對角相鄰的格子,都不能放置船艦片段。因此第 2 列就像一道護欄,強制要求在放置任何船艦之前,先清空第 2 列的對角區域與盤面下半部。光靠這個觀察,就能在任何船艦下子之前砍掉一大塊搜尋範圍。

不相鄰規則與直船規則

有兩組規則規範船艦在盤面上的畫法。第一,每艘船必須是直線。每艘船不是橫向就是縱向,長度必須與艦隊宣告的長度一致,不能轉彎繞角。若一組相連的格子同時橫跨多列又橫跨多行,驗證器會視為彎曲船艦,並記錄一筆矛盾。第二,不同船艦之間在任何方向上都必須至少隔一格海水。船艦不能共用邊,也不能在角落相接,因此每艘船周圍的格子都必須保持空白。

這兩條規則共同產生有用的收緊效果。一旦長度 3 的船艦位置固定,其三個片段所接觸的每一格,包括全部八個對角鄰格,都會被強制為海水,進而迫使下一艘船只能擠進更窄的通道。Conceptis 記載了相同的隔離規則,而內建的驗證器也直接掃描不同連通元件之間的對角鄰格,並拒絕任何在角落相遇的組合,完整重現了該規則。

Battleships Puzzle 逐步玩法

想在內建固定盤面上最快完成整個盤面,最佳方式是將印刷出的行列提示當作約束解算機,一艘一艘地放置船艦。以下的順序,正是如何只利用提示、艦隊形狀與不相鄰規則,把已公開的解答拼出來的方式。

  1. 在下任何子之前先讀完所有提示。注意第 2 列為 0、第 4 行為 0、第 2 行總和為 2、第 1 列總和為 3。這四個事實能把搜尋範圍縮到少數幾格。
  2. 把第 2 列與第 4 行預留為海水。標記它們,並記住根據隔離規則,它們所有緊鄰的對角格也必須保持空白。
  3. 把長度 3 的船放在唯一能放三格的行列上。第 1 列的提示是 3,也是唯一有空間容納三格橫向船的列。在 (0,0)、(0,1) 和 (0,2) 這三格橫放一艘長度 3 的船。
  4. 利用行提示決定第 5 行。第 5 行的提示是 2,第 2 行的提示也是 2。(2,4) 與 (3,4) 這兩格既遠離第 2 列,也不受頂列船艦影響,因此長度 2 的船以垂直方向落入第 5 行的 (2,4) 與 (3,4)。
  5. 依據剩餘提示放置長度 1 的潛水艇。第 2 行還差一格船艦片段,第 5 列也還差一格。唯一能同時滿足兩者的是 (4,1)。把潛水艇放在那裡。
  6. 驗證全部十個提示與隔離規則。這時每個行列都應顯示其印刷的總和,沒有船艦互相接觸,而且每艘船都是直線。如果有助於推理,可以對未使用的格子按 Enter 標記為海水。

這就是已公開的解答:長度 3 的船橫亙頂列、長度 2 的船筆直地落在最右一列,潛水艇則孤立地停在第 5 列第 2 行。從乾淨盤面出發,六次空白鍵動作即可完成,分數會從 1,000 降到 940。

操作方式、海水標記與計分

鍵盤操作涵蓋盤面上的所有互動。方向鍵用來在盤面上移動作用中的格子,空白鍵在目前選取的格子上新增或移除船艦片段,Enter 則在尚未成為船艦的格子上放置或移除選用的海水標記。使用滑鼠與觸控的玩家可以點選切換船艦片段,並透過右鍵選單手勢標記海水。重新開始會清掉船艦、海水標記、分數、移動次數與矛盾狀態,而完成後的最佳分數可能會儲存在 localStorage 中供日後比較。

海水標記純粹是輔助推理之用。它們不會計入艦隊、不會影響驗證,也不會改變分數,因此玩家可以自由地把第 2 列與第 4 行的空白格標記起來,完全不會影響結果。另一方面,船艦動作則會直接驅動分數:每次按下空白鍵後,驗證器都會重新計算連通元件,分數以 0 與 1,000 減去船艦動作次數乘以 10 之後的最大值計算,而內建固定盤面的完美結局就是以六次乾淨動作停在 940 分。連續快速按兩次 Escape 可把盤面換成一個共用的模擬試算表封面,再連續快速按兩次 Escape 則可回到原本未變的艦隊。

重複遊玩的策略筆記

在新的一局裡,零提示永遠是起手重點。任何提示為 0 的行列都會變成海水,而根據隔離規則,該行列對角的任何格子也會變成海水。最大的行列提示通常會揭示最長那艘船該擺哪裡,因為能容納該長度船艦而又不超出總數的行列只有一條。Conceptis 發布了規則參考資料,而《Games Magazine》也獨立記載了相同的直船、不相鄰、艦隊組成與行列數量限制,因此上述步驟始終與這些公開規則對齊。

當某次擺放被拒絕時,請仔細閱讀原因。「彎曲船艦」被拒代表該連通群組同時橫跨多列又橫跨多行,表示有某個正交方向的鄰格被錯誤地合併進不同的船艦。「對角接觸」被拒代表來自不同元件的兩片段在角落相遇。「行列溢位」被拒代表該行列中的船艦片段已經過多,而「艦隊大小不符」被拒則代表盤面上出現超過六個片段。每種錯誤都對應不同的犯錯類型,通常只要修正其中一次擺放,就能在同一次檢查中解決剩下的矛盾。

作為比較,相同的艦隊加提示模式也出現在其他相關的單人邏輯解謎中,這些遊戲利用小行列總數與相鄰規則,在類似約束下逼出唯一答案。把這些謎題與 Battleships Puzzle 一起練習,能磨練同一項核心技巧:運用精確的印刷總數來排除格子,並在緊湊的盤面上擺放一個由多塊組成的形狀。

想進一步了解,可參閱 15 拼盤:為什麼只有一半的隨機盤面可解

想進一步了解,可參閱 2048 遊戲:在瀏覽器中免費暢玩