一款骨牌連鎖遊戲在固定的 5×5 格子上模擬真實的連鎖反應,你擺放的每一片直立骨牌,都可能延長這道骨牌瀑布,或讓它在抵達終點前停住。在 Domino Chain Reaction 中,每一關工作檯都從一塊固定的 START 起點牌、一個目標鈴、一組外觀相同的空位,以及一組嚴格的骨牌預算開始。你不是發射一顆會移動的小球,也不是拖拉物理物件——你要切換骨牌的直立狀態、規劃一條正交路線,然後按下「Push the start」來提交。接著引擎會以確定性的廣度優先順序,從 START 開始走訪連通元件,並在棋盤上為每一張被觸及的骨牌編號。如果骨牌瀑布碰到目標鈴,你就得到 200 分。如果它停在缺口或岔出的支線上,這一局會繼續,直到出現第二個真正不同的失敗佈局才結束遊戲。正是這種刻意擺放、可見的傳遞過程,以及精確的計分機制,讓這款骨牌連鎖遊戲與裝飾性的物理玩具做出區隔。
若想了解啟發這道瀑布隱喻的原始實體骨牌推倒藝術,Wikipedia 上 domino effect 的總覽是個不錯的起點。

用三個階段玩一輪骨牌連鎖
- 檢視棋盤。找出 START 起點牌、目標鈴、所有空位,以及顯示在棋盤旁的骨牌預算。空位在按下按鈕前看起來一模一樣,所以別去尋找任何可能洩漏路線的顏色提示、標籤或無障礙文字。
- 從兩端同時規劃路線。判斷哪些空位與 START 共享一條邊、哪些與目標共享一條邊,以及還需要擺放幾片才能補上剩下的曼哈頓距離。提交前先算清楚,才能避免浪費擺放次數。
- 在空位上切換直立骨牌。點擊任何空位即可放上一片骨牌,再點一次即可移除。骨牌預算只計算你實際擺放的數量,START 與目標骨牌不會消耗預算。
- 逐格追蹤預定的序列。每一次接力都必須共用上、右、下或左其中一條邊。對角接觸永遠不會傳遞反應,而只要出現一個空缺,該支線就會中斷。
- 按下「Push the start」。引擎會以穩定的鄰居順序(上、右、下、左)從 START 進行確定性的廣度優先走訪。每張被觸及的骨牌都會旋轉成倒下狀態,並在棋盤上標上編號。
- 讀取結果。若測試成功,則在抵達目標時停止;若測試失敗,則在再也沒有新的連通直立骨牌時停止。編號序列會精確顯示這道瀑布走了多遠。
只走正交邊:對角線為什麼永遠不會倒下
這款骨牌連鎖遊戲中,最重要的一條規則就是:反應只會沿著共用的邊前進。一張正在倒下的骨牌,只能觸發正上方、正右方、正下方或正左方的那張骨牌。角落接觸對傳遞引擎來說是完全不可見的。這條規則之所以重要,基於兩個實際原因。第一,它讓你能設計刻意的支線:如果你想要一個之字形的轉折,你必須親手擺下那片負責正交轉彎的角落骨牌,因為並沒有任何特殊的 L 形骨牌會自動為你轉向。第二,它讓岔出的支線變得可觀察。如果有一張骨牌擺在已放置骨牌的斜對角,那麼無論它看起來多近,瀑布永遠碰不到它。推倒之後的編號順序,就只會停在缺口前的那張骨牌上;而未來若出現「差一格」的情況,正是引擎自身測試中用來確認傳遞確實會中止的刻意安排。
| 擺放配置 | 反應是否會傳遞? |
|---|---|
| 擺放的骨牌與倒下的骨牌共用上、右、下或左其中一條邊 | 是——計為連通的骨牌 |
| 擺放的骨牌只以角落接觸倒下的骨牌(對角鄰居) | 否——角落不會傳遞 |
| 擺放的骨牌距離倒下骨牌兩格,中間還隔著一個空位 | 否——這個空缺會讓該支線中斷 |
| 擺放的骨牌位於通往目標的連通路線上 | 是——會在倒下順序中編號 |
| 擺放的骨牌位於一條無法抵達目標的支線上 | 一開始會傳遞——但它永遠到不了目標,等於白白浪費一次擺放 |
看懂編號的倒下順序
當你按下「Push the start」時,引擎會走訪連通元件,並在每一張被觸及的骨牌上寫下一個編號。第一張被標記的是 START 本身。下一張被標記的,則是按確定性順序(先上、再右、再下、最後左)出現的第一個連通鄰居。編號會一路持續到目標被觸及,或是瀑布停止為止。這個序列就是推倒之後你的成績單:如果目標是棋盤上編號最大的數字,這關就解開了;如果最大編號停在鈴鐺之前的某處,你就可以沿著這條骨牌鏈往回讀,找出第一個造成瀑布中斷的缺口、支線或岔出的骨牌。由於順序是穩定的,同一組擺放每次都會產生相同的編號,因此沒有任何動畫時機可供你反覆猜測。
Fall 記錄器也會把同樣的序列以精簡的位置標籤列出,讓你不必一直盯著棋盤就能比較各輪結果。出現兩個不同的停止佈局就會結束這一局,所以編輯擺放時保持記錄器開啟,觀察瀑布隨著每次更動而變短或變長,是值得的作法。
計分、失誤與 1,000 分路線
每張工作檯在瀑布抵達目標時,都會精準給予 200 分。五張工作檯全部解開,總分就會凍結在正好 1,000 分,計算方式為 200 × 5 = 1,000。對於「走得很遠但沒有碰到鈴」的瀑布,不會給予任何部分分數;引擎把第五張工作檯的成功視為取得最終分數的唯一途徑。
推倒後若提前停止,不會扣分,但會計入該局的可失誤額度。每一關允許出現兩個真正不同的失敗佈局,之後該局就會結束。如果你連續兩次推倒同一組擺放,引擎會對其特徵進行去重,所以不小心連按兩次並不會浪費一次失誤額度。只要至少更改一張骨牌再試一次,新的停止佈局就算作第一次失誤。出現第二次真正不同的失敗,該局就結束。想要清空失敗紀錄,唯一的方法就是推倒一組確實抵達目標的擺放;下一張工作檯就會以全新的狀態開始。
Restart 永遠會執行精準的重置:回到第一關、分數歸零、沒有已擺放的骨牌、沒有倒下序列、沒有已記錄的佈局,也沒有結束狀態,這讓 Restart 成為整局(而不只是單一棋盤)的安全還原操作。封閉空間、固定端點、越界格子、預算超支、已解關卡與已結束的局,皆為不可分割的 no-op,絕不會部分修改分數、擺放狀態或可見的序列。
鍵盤、觸控與 390 像素的視窗
骨牌的點擊目標至少有 44 像素高,因此整個 5×5 棋盤能舒適地放進 390 像素的行動裝置視窗中。在觸控螢幕與滑鼠操作下,點擊任何空位即可放上或移除一片骨牌。鍵盤操作只限於棋盤範圍:聚焦在某個格子後,用方向鍵移動可見游標,按 Space 切換可用空位的狀態,按 Enter 推倒。當焦點位於 Restart、Push 或 Next workbench 時,則會保留原生按鈕的行為,而不會被遊戲快捷鍵攔截。
這款遊戲完全在你的瀏覽器中執行,擺放選擇、推倒、倒下序列、分數與失誤都不會被上傳進行處理。不需要帳號、訂閱、伺服器請求或重新下載,讓這道謎題成為一段輕巧的路線規劃休息、一個圖形走訪的入門練習,或是一場視覺推理練習——每一張骨牌擺放所帶來的後果,都要等到骨牌鏈開始倒下時才會顯現。
想進一步了解,可參閱 Domino Chain Reaction 新手指南:先讀懂格子。
想進一步了解,可參閱 Crack the Code 每日謎題:先讀懂兩條線索。