重力翻轉遊戲的運作依賴兩個刻意動作——前進與翻轉並前進——套用於一條固定通道,跨越五個確定性的關卡,而全部清除五個關卡必定會頒發剛好 1,000 分。 從第二欄開始,每一欄的地板或天花板都各有一個障礙物,而且該障礙物在每次嘗試之間絕不會移動、改變或消失。跑者只會在你下達其中一個動作時改變位置,而翻轉並前進會切換重力、將跑者切換到對側、並移入下一欄,成為一個不可分割的步驟。如果目標側被阻擋,整個移動會以原子方式失敗,你的位置、所在側、重力、分數與紀錄路徑都會維持原狀。沒有背景計時器,所以緩慢的裝置、暫停的瀏覽器分頁或螢幕閱讀器的暫停都無法自行推動跑者。

gravity flip game
gravity flip game

前進 vs 翻轉並前進:驅動遊戲的兩個動作

前進與翻轉並前進是重力翻轉遊戲中唯一合法的動作。前進會保留你目前的重力方向與跑者所在的側,然後將跑者向前推進一欄到下一個固定欄位。翻轉並前進會反轉重力、將跑者轉移至對側,然後進入該下一欄。兩個動作也都會將段落位置向前推進一欄,因為跑者只會透過你的輸入改變狀態,而不會因為經過時間而改變。

這個區分之所以重要,是因為翻轉並前進具有原子性。重力方向與所在側會在碰撞檢查之前一起改變,所以翻轉後的動作如果目標側有障礙物仍會發生碰撞。失敗的翻轉不會部分成功;它會完全失敗,跑者會維持在原本的位置。這是真正的有狀態移動,而非裝飾性的動畫,這也是為什麼每一次安全的動作都會明顯地同時更新跑者的位置與面板上已完成的路徑。

動作之後所在側之後重力位置變化使用時機
前進同一側同一方向+1 欄下一欄的障礙物位於跑者的對側。
翻轉並前進對側反轉+1 欄下一欄的障礙物位於跑者目前的所在側。

在行動前如何讀取一欄

每個關卡使用一條持續固定的通道。第一欄是安全的起始位置,跑者位於地板、重力朝下。每個後續的欄位都包含剛好一個障礙物,而且該障礙物位於地板或天花板。通道會為每一欄公開三個可讀取的資訊:可見的障礙物側、跑者在該欄時所在的側,以及跑者已通過之任何欄位的已完成路徑側。

你讀取下一個可見的欄位、判斷障礙物位於哪一側,然後決定繼續待在目前這一側或翻轉到對側能否避開該障礙物。由於障礙物不會隨機出現也不會移動,你的決策是根據可見的幾何形狀,而非機率。文字狀態會回報跑者跟隨的是地板或天花板、重力是向上還是向下,以及精確的欄位進度。依照順序讀取這三個訊號,就能讓你的規劃與紀錄狀態一致,並防止猜測偏離實際面板的情況。

如何遊玩重力翻轉遊戲

  1. 開啟重力翻轉遊戲並觀察通道;第一欄是位於地板且重力向下的安全起始位置。
  2. 掃描第二欄,判斷該欄的障礙物位於地板還是天花板。
  3. 如果障礙物位於跑者目前位置的對側,請點擊前進;如果障礙物位於目前的所在側,請點擊翻轉並前進。
  4. 觀察跑者移動一欄;文字狀態會在每次安全動作之後更新所在側、重力方向與欄位計數。
  5. 為關卡中每個剩餘欄位重複進行讀取與決策的循環,同時避免第二次不同的碰撞。
  6. 清除最後一欄之後,該關卡會頒發剛好 200 分,並在地板、第一欄、重力向下、新的一節點路徑下開始下一關。
  7. 在五個確定性的關卡中繼續進行,每關獲得 200 分,直到該回合在剛好 1,000 分的完成狀態結束。
  8. 隨時使用重新開始以重建第一關的精確開局狀態,包括地板側、重力向下、第一欄、空的失敗集合、零分與一節點的地板路徑。

為何翻轉並前進是一次性的原子決策

產品將翻轉並前進視為一個不可分割的決策,而不是先翻轉再前進。重力方向與跑者所在側會在碰撞檢查之前一起更新,因此紀錄狀態與視覺呈現永遠不會不一致。如果你翻轉到某欄,而該欄的目標側有障礙物,該動作會整體失敗:跑者不會部分翻轉、部分前進,也不會破壞紀錄路徑。位置、所在側、重力、分數與已完成路徑在失敗的動作之後都保持不變。

這種原子性也延伸至動作的標準化。遊戲接受可見的「翻轉並前進」標籤,不管周圍的空白或字母大小寫為何,並將加號形式標準化為內部的連字號動作。未知指令、非字串值、空文字、已完成的階段與死鎖的階段都是不改變任何狀態的原子空操作。同一關卡中同一段落、同一動作簽名的重複失敗會被去重,不會計入第二次碰撞。唯有當重複的失敗產生了第二個、不同於之前的失敗簽名時,該關卡才會結束。

兩次碰撞規則與死鎖的運作方式

每個關卡採用兩次不同失敗的規則。第一次失敗的決策會儲存一個簽名,其中包含關卡編號、目前段落與標準化的動作。如果你於同一段落嘗試相同的動作並再次失敗,遊戲會將該嘗試去重,關卡會繼續進行。一旦你採取不同的動作或移動到新的段落並再次發生碰撞,就會產生第二個不同的簽名,該關卡會立即死鎖。

死鎖之後,所有控制與每次 reducer 呼叫都會凍結,直到重新開始。重新開始是唯一的出路:它會重建第一關的精確開局狀態,包括地板側、重力向下、第一欄、空的失敗集合、零分與一節點的地板路徑。重新開始不會保留進度。由於沒有計時器也沒有自動恢復機制,死鎖是真正的失敗狀態,而非視覺假象。仔細讀取下一欄並在點擊之前先決定安全的側,是避免死鎖的唯一方法。

五個關卡、1,000 分:分數如何累計

原始的五個關卡分別包含 4、4、5、5 與 6 個障礙欄位。由於每次安全的動作只會推進一欄,每個關卡恰好擁有與障礙欄位加起始欄位數量相同的決策點。清除關卡的最後一欄會頒發剛好 200 分,所以每個關卡貢獻剛好 200 分,五個關卡的頒發加總為完整的 5 × 200 = 1,000 分。這些欄位數量與每關頒發的分數會由產品契約揭露,並由獨立的測試 oracle 進行驗證。

關卡障礙欄位頒發分數
14200
24200
35200
45200
56200

下一關會以地板、重力向下、第一欄與新的一節點路徑確定性地開始。第五關會保留其完整的已完成路徑,以便可以檢查最終狀態。本機最佳分數的行為來自共用的 GameShell,但遊戲本身不會上傳決策、路徑、碰撞或分數以進行處理。同一個決策序列的每一次執行都會產生相同的結果,包括分數與最終位置。

控制方式:鍵盤、按鈕與觸控

鍵盤控制僅限於可取得焦點的遊戲區域,而非全域視窗監聽。按下 A 或向右鍵可前進,按下 F 則翻轉並前進。原生按鈕提供相同的動作,觸控輸入至少有 44 像素的互動高度,並可透過標準的 Enter 或 Space 鍵啟動。由於沒有計時器,焦點移動與螢幕閱讀器的探索都不會造成意外的延遲推進。

最寬的關卡在最小為零的網格中呈現七個欄位,並採用精簡符號、自動換行與溢位防護,在 390 像素的手機上維持版面結構上的完整。可見的面板始終會顯示欄位的幾何形狀,因此讀取下一個障礙物不需要隱藏的解答標註、隱藏的路徑資料或僅供測試的屬性。測試識別碼僅包含中性的欄位索引與控制名稱,且通道無需隱藏其遊戲幾何即可被存取。

若要更深入的了解,請參閱線上隱藏文字遊戲:重力網格的規則