選擇下一步時,請選取一個非樹木的儲存格,並確認它仍能同時維持四項限制:四棵樹配四頂帳篷、每列與每欄的線索數量完全相符、樹木與帳篷以正交方式一對一配對,以及帳篷在八個方向中的任何一個方向都不得相互接觸。
這個流程在固定的 5×5 帳篷謎題棋盤上尤其重要,因為每個暫定位置都會依完整規則集進行檢查。四棵樹的位置固定,必須恰好新增四頂帳篷。目標不只是把四頂帳篷放在樹木附近;所有數量、配對與間隔都必須同時符合。只有當帳篷與樹木的儲存格共用上、下、左或右其中一條邊時,兩者才可配對;斜角接觸不會形成樹木與帳篷的配對。

先讀線索,再尋找儲存格
棋盤周圍的每個數字都是確切的目標值,而不是最低數量。棋盤會在每列與每欄的線索旁顯示目前的帳篷數量,因此請先找出已經填滿的列或欄。如果某一列目前已有達到其所需數量的帳篷,就不能再於該列放置另一頂帳篷。欄也適用同樣的規則。線索為零的列或欄從一開始就無法再放置。
接著,找出尚未達標的一列與尚未達標的一欄。兩者交會處的非樹木儲存格是可能的候選位置,因為最終放在該處的任何帳篷都會同時計入這兩個數量。不過,交會處僅是起點:該儲存格還必須與適當的樹木有關、周圍有足夠空間,並且能納入一對一配對。
其基本規則是 Simon Tatham 的 Portable Puzzle Collection 所記載的標準帳篷規則,以及 GridPuzzle 的帳篷規則指南。
以相同檢查條件測試每個候選位置
在確定放置另一頂帳篷前,請使用下列篩選條件。這能將基本的位置檢查與較困難的全域配對需求區分開來。
| 檢查項目 | 候選位置通過的條件 | 未通過時的處理方式 |
|---|---|---|
| 儲存格類型 | 該儲存格不是四個固定樹木儲存格之一。 | 改選其他可用儲存格;樹木儲存格無法變更。 |
| 列容量 | 該列目前的帳篷數量仍低於其線索值。 | 移除任何使該列數量超過目標值的帳篷。 |
| 欄容量 | 該欄目前的帳篷數量仍低於其線索值。 | 移除任何使該欄數量超過目標值的帳篷。 |
| 帳篷間隔 | 該儲存格周圍八個儲存格中都沒有帳篷。 | 移除發生接觸的帳篷,或選擇其他候選位置。 |
| 樹木鄰接 | 該儲存格直接位於至少一棵樹木的上方、下方、左方或右方。 | 不要在該處放置帳篷,因為斜角的樹木不列入配對。 |
| 配置與配對 | 棋盤仍能將每頂已放置的帳篷指派給不同的樹木,且帳篷總數不超過四頂。 | 在新增另一頂帳篷前,重新考慮這個暫定位置。 |
配對檢查是最容易被誤判的一項。一頂帳篷可能位於多棵樹木旁,因此計算附近樹木的數量並不能證明配對可行。此實作採用二分圖配對檢查,驗證已放置的帳篷能否指派給不同的樹木。請配合棋盤上方的目前帳篷數量、可配對帳篷數量及任何矛盾警告,確認暫定位置仍然可行。
間隔檢查比配對規則更嚴格:斜角的樹木不會形成配對,而斜角接觸的帳篷也仍是禁止的接觸。關於這項差異,帳篷謎題中的帳篷可以斜角接觸嗎?不可以的專門說明提供了進一步釐清。
選擇並放置下一頂帳篷
- 讀取全部五個列線索與五個欄線索。記下哪些列或欄已達到確切總數,哪些仍需要一頂帳篷。
- 排除已填滿的列或欄。不要考慮在目前數量已等於線索值的列或欄中放置另一頂帳篷。
- 使用方向鍵移動游標。聚焦於尚未達標的一列與尚未達標的一欄交會處的空白非樹木儲存格。
- 檢查正交方向的樹木鄰接。確認該儲存格至少與一棵樹木共用一條邊。斜角樹木並不符合條件。
- 檢查全部八個鄰格。該儲存格不得以水平、垂直或斜角方式接觸其他帳篷。
- 按 Space 放置一頂暫定帳篷。每次變更帳篷後,瀏覽器都會重新計算完整規則集。
- 檢視回饋。將目前的列數與欄數和各自的線索比較,檢查可配對帳篷數量,並尋找矛盾。如果放置失敗,請再次按 Space 移除帳篷。
- 重複操作,直到四頂帳篷皆有效。請逐一測試儲存格,不要一次堆疊多個不確定的位置再試著事後修正。
使用控制項安全測試想法
控制項能區分暫定帳篷與永久的草地標記。這可讓你測試有希望的儲存格、檢視後果,並在不必重新開始整個謎題的情況下撤銷放置。
| 控制方式 | 結果 | 實際用途 |
|---|---|---|
| 方向鍵 | 在可用儲存格之間移動游標。 | 掃描列與欄的交會處。 |
| Space | 在可用儲存格中放置或移除帳篷。 | 測試候選位置並撤銷衝突。 |
| Enter | 在空白非樹木儲存格中新增或移除草地標記。 | 記下你認為無法放置帳篷的方格。 |
| 滑鼠或觸控 | 點選可用儲存格以切換帳篷的放置狀態。 | 使用指向裝置代替鍵盤操作。 |
| 重新開始 | 清除棋盤與其計分狀態。 | 在重大改變解題方式後開始新的嘗試。 |
樹木儲存格不可變更。對樹木嘗試放置帳篷或草地標記不會改變棋盤,也不會消耗一步,因此選擇不可用儲存格不會造成計分扣罰。
撤銷矛盾,而不是重新開始
驗證系統會在每次帳篷變更後檢查整個棋盤,並偵測數種特定失敗情況:
- 帳篷之間發生水平、垂直或斜角接觸。
- 某一列或欄的帳篷數量超過其線索允許的數量。
- 某頂帳篷附近沒有任何可能配對的樹木。
- 多頂帳篷爭奪的樹木數量過少。
- 帳篷總數超過四棵樹木所能支援的數量。
- 帳篷被放在樹木儲存格上。
驗證警告不會阻止放置,也不會使這次嘗試變成無法挽回的失敗。矛盾仍可編輯:請按 Space 移除發生衝突的帳篷,然後從修正後的位置繼續。當整個解題方式陷入停滯時,重新開始很有用,但面對一個錯誤儲存格時,並不以它作為正常處理方式。
不同樹木的配對說明了為何看似合理的步驟仍可能失敗。位於兩棵樹木旁的帳篷不一定有錯,而兩頂各自鄰接某棵樹木的帳篷,如果無法配對給不同樹木,仍會互相競爭。請移除其中一頂,再重新評估其他候選位置,而不是新增另一頂帳篷來「修正」數量。
用草地標記記下確定資訊
請在空白非樹木儲存格上按 Enter,以新增或移除草地標記,用來記錄你認為該方格無法放置帳篷。適合標記的候選位置包括:位於已填滿的列或欄中的儲存格、在八個周圍方向任一方向接觸現有帳篷的儲存格,以及沒有正交相鄰樹木的儲存格。
草地只是推理輔助工具,不會影響驗證、不會計入列或欄的線索,也不會建立樹木配對。若要測試實際的帳篷位置,請使用 Space 而非草地。每次草地操作都會扣減 10 分,因此請只在能讓下一步推理更清楚時才使用標記。
以四頂有效帳篷完成謎題
完成的棋盤必須同時滿足四項條件:帳篷數量與樹木數量相同、每頂帳篷都能與一棵正交相鄰的樹木一對一配對、任何兩頂帳篷在八個周圍方向中的任何一個方向都不得接觸,以及每列與每欄都恰好達到其線索總數。當第四個有效位置完成棋盤後,遊戲會凍結,直到你選擇重新開始。
分數計算方式為 max(0, 1,000 − 10 × actions),每次帳篷或草地操作都會計入。以四次帳篷放置且不使用標記的乾淨解法,分數為 1,000 − (4 × 10) = 960 points。額外的放置、移除或草地標記,都會使結果再降低 10 分。
重新開始會清除帳篷、草地標記、步數、分數與矛盾。完成的最佳成績可能只會儲存在瀏覽器的本機儲存空間中。因此,最有效率的下一步永遠相同:利用線索縮小範圍、測試鄰接與間隔、放置一頂帳篷,並在確定下一個位置前參考即時配對回饋。
相關閱讀:如何在溫度計謎題中選擇燈泡?。