一個真正的線上 3D 迷宮遊戲,不會依賴視覺透視技巧,也不會靠隨機產生的圖片;它會把每一層樓,都視為一個由格子構成的真實圖,只在四個正方向連接相通的鄰格,並用位於相鄰樓層同一列同一欄的成對樓梯格,把各層連結起來。3D 迷宮正是這樣打造的:它內建五個固定的多樓層版面,各自附有經過驗證的最短路徑 5、6、7、8、12 步,每過一關固定獎勵 200 分,全部五關過關則有 1,000 分的最終分數。桌機版用方向鍵移動,手機版則用畫面上的方向鍵操作;成對的樓梯,靠 U 鍵或 Page Up 上樓,靠 D 鍵或 Page Down 下樓。這個迷宮完全在你的瀏覽器中執行,不需要帳號,任何不合法的指令,都會被當成完全不生效的操作,不會改變你的位置、步數,或分數,這讓你可以放心去試探看起來可疑的牆壁。每一個版面,都會事先經過驗證,另外還有一個獨立的廣度優先搜尋,針對這些實際的版面資料進行確認,證實公佈的距離無誤,因此你在某一次試玩中學到的路線,下一次一樣會有相同的表現。

這裡的線上 3D 迷宮遊戲,實際上是什麼
大多數線上的 3D 迷宮體驗,靠的不過是在走廊貼圖裡做第一人稱行走,或是用透視視角假造出深度感,背後沒有任何真正的幾何結構。3D 迷宮則是另一種線上 3D 迷宮遊戲:每一關,都是一份手工設計、被解析成圖的網格資料,而你的位置,是一個以樓層、列、欄來標識的節點。相通的格子,只會在同一樓層,往四個正方向,連接緊鄰的鄰格,牆壁則完全無法穿越。樓層的堆疊,也不只是裝飾用途;它們是真正的圖層,靠成對的樓梯格連結在一起,這些樓梯格永遠位於相鄰樓層的同一列同一欄。
因為每一個版面,都是固定的而不是隨機產生的,所以這個謎題有一個結果確定的答案。這一套內容包含五個原創版面,每個各有兩到三層樓。一開始是用來介紹樓梯機制的短路線,後期則加入更長的走廊,以及第二組樓梯。走到目前版面的 EXIT,就會立刻完成該關,不需要另外按任何「Check」按鈕,因此一條正確的路線,絕不會因為等待確認而卡住。
操作方式、樓梯,以及樓層機制
所有移動,都遵循同一套一致的規則。在桌機上,四個方向鍵,會讓你在目前顯示的樓層上,往北、南、西、東各移動一格;在手機上,畫面上的方向鍵,會用大按鈕提供同樣的四個方向。每一次被接受的正方向移動,都會讓步數計數器恰好加一。切換樓層,是另一個獨立的操作管道:從一個標示樓梯的格子,按 U 鍵或 Page Up 上樓,或按 D 鍵或 Page Down 下樓。鍵盤與觸控的按鍵對應,呈現的是同一套移動規則,所以同一套路線策略,在筆電觸控板上與手機螢幕上,效果都一樣。
這個機制有一個明確、實用的邊界情況。除非你目前所在的格子,屬於一組成對的樓梯,而且你按的方向,與相鄰樓層那個搭檔樓梯相符,否則樓層指令就不會產生任何效果。站在距離樓梯一格的位置按 U、按錯方向,或是在一個標示 DOWN 的樓梯上按 U,這些操作都不會改變你的位置、步數,或分數。牆壁、棋盤邊界、不可用的樓梯,以及未知的指令,都是同樣的表現。無效的輸入是完全不生效的:它們不會移動玩家、不會消耗一步,也不會影響分數。正是這一條規則,讓這個遊戲可以放心地反覆試探,也讓步數計數器在有效率地重玩路線時,保持有意義。
樓梯配對的規則,也值得記在心裡。每一個樓梯格,恰好對應到一個相鄰樓層上,位於同一列同一欄的格子,因此上樓與下樓,永遠遵循一條看得見、一致的連結。這裡沒有斜向的樓梯跳躍,也沒有隱藏的傳送點,這代表下一層樓上你看到的那個格子,就是你確切會落腳的位置。
如何一步步遊玩線上 3D 迷宮遊戲
當你第一次坐下來面對一個全新的3D 迷宮版面時,可以照著以下順序進行。
- 開啟這個版面,掃視目前顯示的樓層,找出三個地標:YOU 標記、EXIT 標記,以及任何標示 UP 或 DOWN 的格子。
- 從 YOU 開始,規劃一條不穿牆的路線,走到最近可到達的樓梯,並記下它標示的是 UP 還是 DOWN,方便你之後按對樓層按鍵。
- 用方向鍵,或畫面上的方向鍵,沿著規劃好的路線移動。每一次被接受的移動,都會讓步數計數器加一;撞牆或撞到棋盤邊界的無效移動,則不會。
- 當你直接走到標示的樓梯格上時,按 U 或 Page Up 上樓,或按 D 或 Page Down 下樓,要與該樓梯的標示相符。你的新位置,會是相鄰樓層上,位於同一列同一欄的那個配對樓梯。
- 在新的樓層上,先重新定位,再決定要走哪條走廊。如果 EXIT 就在這一層,就找出它;如果你還需要換樓層,就找出下一個樓梯,然後規劃你的下一段路線。
- 走到 EXIT 格上。目前這個迷宮會立刻完成,遊戲會恰好獎勵 200 分,並載入下一個固定版面,從它的起始節點開始。
- 針對全部五個版面,重複同樣的「判讀樓梯、規劃路線、爬樓梯」循環。全部五個版面過關,會讓這一輪遊戲結束時,恰好得到 1,000 分,這是完美過關時結果確定的總分。
想更深入了解樓梯之間的多樓層導航,可參考3D 迷宮遊戲指南。
五個固定版面,以及它們經過驗證的最短路徑
3D 迷宮裡的五個版面,並不是無窮無盡的。它們是五份固定的圖形資料,每一份都事先經過一個版面驗證器的檢查,確認範圍內的相通節點都是唯一的、端點都相通、相鄰樓層之間的樓梯座標一致,以及起點到出口確實可達。一套自動化測試,還會額外拒絕重複的格子、斜向或不對稱的樓梯配對,以及封閉的端點,並針對正式的狀態機,重播每一條精確的過關路線,以確認 200 分的加分幅度,以及 1,000 分的總分。
公佈的最短距離,來自一個獨立、針對這些實際版面資料的廣度優先搜尋。這個搜尋,把一般的移動與有效的樓梯轉換,都當成圖上的邊,依照距離由近到遠的順序,探索所有可到達的位置,並記錄第一次抵達 EXIT 所需的距離。精確手工設計的路線,也會在同一套自動化測試中被重播,因此公佈的距離,會同時對照圖形運算的結果,以及可實際遊玩的狀態機來檢查。這五個版面經過驗證的最短解法如下:
| 版面 | 最短路徑(步數) | 在整套內容中的角色 |
|---|---|---|
| 1 | 5 | 最短的路線,用來教導樓層機制 |
| 2 | 6 | 稍微長一點的路線,仍然著重樓梯機制的練習 |
| 3 | 7 | 用更長的路線,延續換樓層的練習 |
| 4 | 8 | 最終版面之前更長的走廊 |
| 5 | 12 | 經過驗證最長的路線,引進第二組樓梯 |
畫面上顯示的最短距離,給了你一個清楚的基準,方便你有效率地重玩每一個版面。一旦你曾經過關一次,步數計數器就是最簡單的方式,用來衡量你下一次嘗試,是打平、超越,還是沒有達到那條經過驗證的路線。
計分、重新開始,以及驗證器檢查的內容
每一次成功過關,都恰好值 200 分,遊戲會立刻載入下一個版面,從它的起始節點開始。這裡沒有另外的「Check」按鈕,所以一條已經解開的路線,不會因為等待確認而卡住。因此,全部五個版面過關,會產生恰好 1,000 分,這是完美過關時結果確定的總分。
按下「重新開始」,會把目前的關卡、位置、步數、過關數,以及分數,全部清空回到同一個結果確定的起始狀態。這台裝置共用的遊戲外殼,會保留你完成過的最佳分數,讓你可以接續前一輪遊玩的結果。當你需要快速隱藏遊戲時,「Boss」控制項仍然可以使用,而且因為每一個版面都是固定且經過驗證的,你在某一次嘗試中學到的路線,下一次一樣會有相同的表現。
版面驗證器,會在一個版面被視為可遊玩之前先執行,並強制執行一套嚴格的規則:每個相通節點都是唯一的,且落在宣告的樓層、列、欄範圍內;任何路徑的兩端都是相通的;每個樓梯,都在完全相同的座標上,連接相鄰的樓層;而 EXIT 必須能從起點到達。接著,自動化測試套件,會驗證撞牆、撞邊界、無效指令、樓層不符,以及遊戲已完成之後的操作,全部都不會產生效果,並依序執行每一條精確的過關路線,確認 200 分的加分幅度,以及最終 1,000 分的總分。所有東西都在你的瀏覽器裡,以用戶端遊戲的形式在本機執行;這個迷宮不會把路線、位置,或輸入內容,上傳到任何伺服器,也不需要帳號就能遊玩。
每一層樓實用的路線規劃技巧
因為無效的移動並不會造成任何損害,你可以直接走向一個看起來可疑的邊界去試探,不會因此損失分數,但步數計數器仍然會獎勵有規劃的移動。一個可靠的策略,是在移動之前,先把目前顯示的樓層,當成一張小地圖來閱讀。先找出樓梯標記,規劃一條不穿牆的路線走到那裡,並記住它標示的是 UP 還是 DOWN。換完樓層之後,先找出 EXIT 或下一個樓梯,再決定要走哪條走廊。光是養成這個習慣,就足以用公佈的五步與六步解法,過掉前面幾個版面。
對於後期引進更長走廊與第二組樓梯的版面,同樣的做法,也能放大套用:把樓層當成一張圖來描繪,標出每一層的樓梯搭檔,並選一條盡量減少回頭走的路線。因為最短距離已經過驗證,你可以把它當成重玩時的個人基準。如果你在對應版面上的步數,剛好等於 5、6、7、8 或 12,就代表你打平了公佈的最短解法;如果沒有,你就有一個明確的目標,可以在下一次挑戰時去優化。