比較兩種 Pipes Puzzle 方法最公平的方式,是重播同一組固定的 3×3 scramble,並比較未連接端、相連方塊、互惠連線、封閉迴圈及使用的旋轉次數。

在 Pipes Puzzle 中,邊緣優先的方法會試著消除局部連接錯誤,而網路優先的方法則會試著擴展一個相連群組。兩者最終都必須達到相同的完成條件,因此比較時應衡量進展、有效性和效率,而非個人偏好。

how do i compare two approaches in pipes puzzle
如何比較 Pipes Puzzle 的兩種方法

每種 Pipes Puzzle 方法試著改善的內容

先將局部正確性與整體結構分開來看。方塊在單一鄰塊旁可能看起來正確,但仍在其他地方留下未配對的開口。反過來說,多個方塊可能彼此相連,棋盤的另一部分卻仍處於孤立狀態。因此,有意義的比較不能只依賴單一視覺印象。

衡量項目 顯示的內容 有效完成的必要條件
未連接端 指向網格外部,或朝向鄰塊但鄰塊沒有相對開口的開口 零個未連接端
相連儲存格 從第一個方塊可到達的方塊數量 全部九個方塊相連
互惠邊緣 兩個相鄰方塊彼此朝向時形成的有效連線 恰好八條互惠邊緣
封閉迴圈 違反無環目標的電路式連接 沒有迴圈
旋轉 某種方法使用的順時針轉向次數 分數 = max(0, 1000 − 10 × rotations)

狀態列會直接報告未連接端的數量與相連儲存格的數量。互惠連線、確切的邊緣數量及迴圈狀態,則決定棋盤是否真正完成。這項區分很重要,因為單靠任一項即時計數,都無法證明謎題已解出。

測試前先定義兩種方法

使用「邊緣優先」和「網路優先」這兩個標籤來描述兩項刻意設計的方案,而不是內建的遊戲模式。實作每種方案時,方式是決定下一個應該順時針旋轉的方塊。

特徵 邊緣優先方法 網路優先方法
第一優先事項 移除指向外部,或未與鄰近開口接合的開口 擴展從第一個方塊可到達的群組
即時回饋 觀察未連接端數量是否減少 觀察相連儲存格數量是否增加
典型改善 減少邊界或互惠開口方面的錯誤 擴大 3×3 網格中的可達範圍
主要風險 局部整理完善的群組可能仍未相連 較大的群組仍可能包含未連接邊緣或封閉迴圈
公平的完成測試 全部四項完成條件 相同的四項完成條件

如果你的主要問題是「我能否移除每個局部錯誤,同時不產生分離的群組?」,那麼邊緣優先的試驗會更有用。如果你的問題是「我能否連接全部九個方塊,同時不讓網路形成迴圈?」,那麼網路優先的試驗會更有用。兩種方法回答的是不同問題,但最終結果仍由同一份核對清單決定。

在相同棋盤上比較兩種方法

  1. 重設第一次試驗。 開始前選擇重新開始。此操作會還原全部九個 scramble 旋轉,以及游標、分數、移動次數和即時分析,因此兩種方法都會從完全相同的確定性棋盤開始。

  2. 記錄基準值。 記下狀態列顯示的未連接端數量與相連儲存格數量。這是兩項可直接比較的即時指標;不要以圖形看起來多連接的印象取代這些數值。

  3. 逐次旋轉執行邊緣優先方法。 使用方向鍵移動選取項目,然後按 Space 或 Enter,將選取的方塊順時針旋轉 90 度。使用滑鼠或觸控的使用者可以直接點選方塊進行旋轉。每次旋轉後,記下這兩項數量及使用的旋轉次數。

  4. 重新開始,並在相同規則下執行網路優先方法。 這次要優先擴展從第一個方塊相連的群組。維持每次只記錄一次旋轉的習慣,讓兩條路徑能直接比較。

  5. 在相同旋轉檢查點比較。 例如,在轉向次數相同後比較兩種方法。如果其中一條路徑較早達到有效完成狀態,請記錄該結果,不要再繼續變更已完成的棋盤。

  6. 套用確切的完成測試。 完成的棋盤必須沒有未連接端、觸及全部九個儲存格、恰好有八條互惠邊緣,而且沒有封閉迴圈。每次旋轉後都會執行驗證,完成的棋盤會凍結旋轉,直到重新開始。

  7. 選擇較佳的方法。 如果只有其中一種方法達成有效完成,它就是勝者。如果兩者都能有效完成,則使用 max(0, 1000 − 10 × rotations) 比較分數;旋轉次數較少會得到較高分數,除非兩種方法都至少使用 100 次旋轉,此時兩者分數都是 0。如果在相同檢查點兩者都尚未完成,請比較即時計數並繼續測試,不要宣布永久勝者。

解讀回饋,避免誤判停滯狀態

未連接端可能有兩種原因:開口指向外側邊界之外,或是朝向一個沒有反向開口的鄰近方塊。因此,未連接端數量減少,表示局部邊緣配對有所改善,但不能證明全部九個方塊都已相連。

相連儲存格數量的運作方式不同。它會報告從第一個方塊可到達的儲存格數量,而不是從目前具有選取外框的方塊開始計算。數量增加表示網路優先方法正在取得進展,但這仍無法排除相連群組其他地方存在迴圈。

起始方向可明確辨識為會造成停滯的方向,但仍可編輯。「停滯」不表示旋轉遭到封鎖,也不表示棋盤無法修復。你可以繼續旋轉方塊,並使用未連接端與相連儲存格數量評估每次變更。

方塊會留在原本的儲存格中,只能旋轉,因此任何看似需要移動或交換管線的方法,都超出了支援的工作流程。計畫中的逆時針變更,可以改用三次順時針四分之一圈旋轉來完成。

使用公開路徑作為基準

此實作使用固定的 3×3 蛇形網路,以及重複的一圈、兩圈和三圈 scramble。公開的已解方向會沿著蛇形路徑通過每個儲存格:橫越最上列,沿右側向下,再橫越中間,向下走到左側,最後橫越最下列。該參考路徑有助於你評估其他路徑,但只有一個公開解答,並不能證明它是唯一的可能解答。

分數會依據 max(0, 1000 − 10 × rotations) 獎勵效率。公開路徑需要 18 次順時針旋轉,可得到 1000 − 10 × 18 = 820 分。因此,比較兩種方法時,可以將 18 次旋轉與 820 分視為此產品特有的基準,而不是通用的 Pipes 結果。

使用此基準評估效率,不要選擇只是讓棋盤看起來最先完成的路徑。需要較多轉向的方法仍可能有效,但當旋轉次數不同時,完成後的分數會較低,除非兩種方法都至少使用 100 次旋轉,此時兩者分數都是 0。

將一般 Net 規則與此棋盤的細節分開

Simon Tatham 持續維護的 Net 文件 說明了解 shuffled 網路的方法,也就是旋轉方塊,直到網路相連且沒有封閉迴圈。Puzzolve 的 Pipes 基礎說明則指定了互惠開口、單一統一網路、不得有朝向邊界的開口、只能旋轉而不能移動,以及無環樹狀結構。這些參考資料解釋了比較背後的更廣泛規則。

確切的 3×3 蛇形測試配置、初始旋轉、符號、控制方式和分數,都屬於這個特定 Lizely 實作。不要假設所有名為 Pipes、Net、FreeNet 或 NetWalk 的遊戲都採用相同的棋盤尺寸、scramble、路徑長度或計分規則。如果比較結果平手,而且你需要一條選擇下一個方塊的規則,請參閱 在 Pipes Puzzle 中接下來應該旋轉哪個方塊。

讓最終比較切實可行

如果邊緣優先方法能持續移除未連接端,同時仍可觸及全部九個儲存格並獲得較高的最終分數,它就是較佳方法。如果網路優先方法能快速觸及更多儲存格,仍符合互惠邊緣與無迴圈要求,並獲得較高的最終分數,它就是較佳方法。如果兩者都符合每項完成條件且分數相同,請視為效果相同。

比較時應聚焦於謎題,而不是解題者。重新開始會還原相同的 scramble,而不是產生新的 scramble,因此每次試驗都是在受控條件下測試策略。勝出的方法,是在 max(0, 1000 − 10 × rotations) 下,以較高分數達到確切有效網路的方法。如果分數相同,兩者在分數上就是平手。只是在棋盤進行到一半時看起來較整潔,並不會因此獲勝。

如果你正在權衡不同選項,如何比較 Find Prime Numbers Game 的兩種方法有更詳細的說明。