Turn-Based Tactics 是一款確定性的瀏覽器戰術遊戲,在原創的 5×4 棋盤上進行,1 個 6 點生命值的玩家單位面對 1 個 2 點生命值的 Scout 與 1 個 4 點生命值的 Guard,而一條公開的十步路線可以正好以 5 點剩餘生命值結束戰鬥,並獲得剛好 1,000 分。棋盤是固定的:2 格牆壁格子隔開中央,2 格掩護格子將受到的傷害從 2 減為 1,所有優先順序與移動規則都硬編碼到同一份固定資料中,獨立驗證的 oracle 會重播同一份資料。沒有擲骰、沒有隨機洗牌的地圖、沒有隱藏的機率,也沒有線上對手,按下 Restart 總是會讓玩家回到完全相同的戰術難題。每一回合分為「移動階段」與「攻擊階段」。在移動階段中,玩家可橫向或縱向走 1 格,或選擇等待。在攻擊階段中,玩家可攻擊 1 個相鄰的存活敵人,或選擇等待。攻擊階段結束後,每個存活敵人都會執行剛好 1 個確定性的動作:相鄰的敵人會攻擊,否則會以「先橫向、再縱向」的優先順序朝玩家移動(前提是該移動為合法)。

為什麼會存在確定性的瀏覽器戰術遊戲
大多數瀏覽器戰術遊戲混合了即時時鐘、隨機化的敵人行為、課金計時器,以及程序化洗牌的地圖。那樣的組合可能很刺激,但也代表每一次失誤都有一部分是運氣。Turn-Based Tactics 是完全不同的設計。棋盤、單位生命值總和、牆壁與掩護格子、Manhattan 移動規則,以及敵人「先橫向」的追擊優先順序,全部鎖定在單一作者設定的固定資料中。獨立的 oracle 擁有自己的字面值地形、單位資料、移動規則、掩護計算、敵人優先順序與動作序列,並針對產品 reducer 驗證同一條十步勝利路線與十二步失敗路線。這樣的結構讓瀏覽器中的一場對局更接近邏輯謎題,而非真實戰鬥。讀者若想在失敗後知道自己是否能做得更好,只需按下 Restart 重播相同的開局,任何輸入的結果都能完全從規則推導出來。
確定性的設計也消除了某一類特定挫折:無效的輸入不會悄悄毀掉一場對局。產品 reducer 會拒絕超出棋盤、穿越牆壁、進入已被佔據的格子、在錯誤的階段執行、或超出 Manhattan 距離 1 的移動,而這些拒絕都是原子的無效操作。完成與失敗都是凍結狀態,因此多餘的點擊或按鍵無法移動單位、改變生命值、改變階段、改變分數或翻轉結果。驗證不仰賴產品自我說明,而是依賴外部字面值棋盤的重播,以確認固定資料與兩條路線都正確。
固定的 5×4 棋盤與其棋子
戰場是個緊湊的 5 欄 4 列方格。2 格牆壁格子隔開中央,2 格掩護格子減少受到的傷害,其餘格子為開放空間。玩家控制 1 個起始生命值為 6 的單位。Scout 起始生命值為 2,Guard 起始生命值為 4,兩者在每一場對局中都會被放在固定座標。因為玩家有 6 點生命值,敵方合計也是 6 點生命值,這樣的數字獎勵謹慎的順序安排,而非蠻力硬拚。
| 棋子 | 起始生命值 | 角色 |
|---|---|---|
| 玩家 | 6 | 單一單位;須將兩個敵人都歸零才能獲勝 |
| Scout | 2 | 較低生命值的敵人;受到 1 次普通攻擊即會被擊敗 |
| Guard | 4 | 較高生命值的敵人;需要 2 次相鄰的普通攻擊才會被擊敗 |
普通攻擊固定造成 2 點傷害,站在掩護格上的單位只會受到 1 點傷害。牆壁則完全無法進入,雙方皆然。這三條規則——固定傷害、掩護減傷、無法穿越的牆壁——就是全部的傷害與移動模型,而且在不同對局之間永遠不會改變。
如何在瀏覽器中遊玩 Turn-Based Tactics
- 在瀏覽器中開啟 Turn-Based Tactics,並閱讀狀態面板,這樣可以看到目前階段、單位生命值、位置、地形,以及上一次已解決事件訊息。
- 在移動階段中,使用方向鍵或標示好的方向按鈕選一個橫向或縱向方向,或按 Space 選擇等待。牆壁與已被佔據的格子會將此次移動視為無效操作並拒絕。
- 確認玩家位於合法格子。若按鈕或按鍵呈現停用狀態,代表此動作在當前狀態下不合法,且不會改變棋盤狀態。
- 在攻擊階段中,點擊 1 個相鄰的存活敵人,或按 1 攻擊 Scout、按 2 攻擊 Guard。若範圍內沒有相鄰敵人,請按 Space 等待。
- 觀察確定性的敵方階段自動執行。每個存活敵人若與玩家相鄰就會攻擊,否則在移動合法的情況下,使用「先橫向、再縱向」的優先順序朝玩家移動 1 格。
- 重複這個兩階段循環,直到其中一方的生命值被扣到 0。然後重新開始,嘗試公開的十步完美路線,或研究其他打法。
階段順序、掩護與敵方移動解析
執行順序很重要,因為玩家可以在敵人行動前行動兩次。先是移動,然後是攻擊,接著每個存活敵人都會執行剛好 1 個確定性的動作。玩家若在一個回合的兩個階段都選擇等待,就是刻意把先手交給敵人,同時維持階段順序不變。掩護會與這個先手互相影響。站在掩護格上可將受到的攻擊從 2 點傷害減為 1 點,這代表在掩護上等待 1 回合,可以吸收逼近中的 Guard 原本會造成的重擊。
敵方追擊遵循單一固定的優先規則。當敵人因為不相鄰而無法攻擊時,會嘗試朝玩家橫向或縱向移動 1 格,使 Manhattan 距離縮短。若橫向與縱向的移動都能縮短 Manhattan 距離,則會優先選擇橫向。這種「先橫向、再縱向」的優先順序是硬編碼的,因此同一套開局在玩家輸入相同的情況下,永遠會產生相同的敵方位置。這也是為什麼公開的十步路線是可重現的:每一次敵方移動都是玩家先前位置的函數,而且這個函數沒有隨機種子。
操作方式:鍵盤、滑鼠與觸控
同一個產品提供 3 種輸入方式。滑鼠與觸控玩家使用螢幕上標示好的控制項:方向按鈕用於移動,標示名稱的目標按鈕用於攻擊 Scout 與 Guard,等待按鈕可在任一階段使用。鍵盤玩家則在移動階段使用方向鍵,在任一階段按 Space 等待,並在攻擊階段按 1 或 2 來指定 Scout 或 Guard。介面會顯示目前階段、單位生命值、地形、合法的移動按鈕、可用的目標,以及每次動作後以淺白語言呈現的事件訊息。
| 動作 | 鍵盤 | 滑鼠/觸控 |
|---|---|---|
| 橫向或縱向移動 1 格 | 方向鍵 | 標示好的方向按鈕 |
| 在移動階段等待 | Space | 等待按鈕 |
| 攻擊 Scout | 1 | Scout 目標按鈕 |
| 攻擊 Guard | 2 | Guard 目標按鈕 |
| 在攻擊階段等待 | Space | 等待按鈕 |
| 開始新的一局 | Restart 控制項 | Restart 按鈕 |
呈現停用狀態的控制項代表該動作目前在不合法的狀態下,且不會改變遊戲狀態,因此讀者可以分辨某個輸入是因為被阻擋而無效,還是因為是合法的等待而無效。狀態面板會在每次動作後顯示階段、生命值、位置與上一次已解決事件,讓整個序列完全可檢視。
通往 1,000 分的十步路線
產品公開了一條完美的十步玩家動作路線,可以保留 5 點生命值,並剛好獲得 1,000 分:向右移動、攻擊階段等待、下一次移動等待、攻擊階段等待、移動階段等待、攻擊 Guard、移動階段等待、攻擊 Guard、向右移動、攻擊 Scout。對應的鍵盤路線為 ArrowRight、Space、Space、Space、Space、2、Space、2、ArrowRight、1。
公開的十步路線並非適用於所有瀏覽器戰術遊戲的攻略,而是針對這個特定固定資料的驗證答案。這條路線展示了為何階段順序很重要。前幾次等待讓 Guard 走入可被攻擊的距離,同時玩家佔據下方掩護格,使 Guard 的首次攻擊從 2 點傷害減為 1 點。接著 2 次相鄰攻擊在最後的移動與攻擊 Scout 之前解決 Guard。想要以另一個角度研究同一工具的策略演練的讀者,可以比較 Grid Battle Strategy Game: Plan Ten Actions, Score 1,000 中的路線,該文從規劃而非確定性重播的角度切入。
確定性失敗路線的樣貌
產品同樣公開了確定性的失敗路線:在整整 6 個回合中,兩個階段都選擇等待。在沒有玩家攻擊、也沒有掩護優勢的情況下,Guard 會逼近距離並造成完整的 2 點傷害,直到玩家的 6 點生命值耗盡為止。由於每一次敵方移動都是依據相同的「先橫向、再縱向」規則計算出來,失敗的時間軸與獲勝的時間軸一樣可以預測。這種鏡像對稱性正是讓本工具屬於邏輯謎題而非軍事模擬、戰略性向測驗、教育評分或標準化認知評估的原因,而狀態面板會在每次動作後顯示階段、生命值、位置與上一次已解決事件,將這一點揭露無遺。
想要從不同角度研究同一個確定性十步固定資料的讀者,應重新開始該局並依照上述鍵盤順序操作。只要輸入相同,就會出現相同的棋盤、相同的規則,以及相同的 1,000 分結局。