如果這個工具幫到了你,可以請作者喝杯咖啡 ☕
按尺寸、演算法、出口與隨機種子生成可復現迷宮,支援最短路徑、距離熱圖、線上試玩和 SVG 下載。
迷宮設定
調整尺寸、演算法和出口位置,產生可重現的方格迷宮。
長通道較多、岔路較少,解謎節奏更連貫。
使用相同尺寸、演算法、出口方式和種子,可以重新產生完全相同的迷宮。
5pai2e96一個 15×15 的方格迷宮可以擁有數百條岔路,但從起點到終點只保留一條不重複的正確通路。頁面上方的生成器允許同時控制寬度、高度、演算法、出口方式和隨機種子,並把生成結果直接用於線上解謎、教學演示或列印練習。
方格迷宮可以看成一張由房間和通道組成的圖。每個格子對應一個節點,相鄰格子之間的牆決定兩個節點是否連通。生成過程先建立全部牆體,再按照演算法逐步打通相鄰格子,最終得到一棵覆蓋所有格子的生成樹。這樣的結構保證任意兩個格子之間都能互相到達,而且正確路線不會形成環路。生成器會在相同輸入條件下使用確定性的偽隨機序列,因此同一個隨機種子會得到相同牆體、起點、終點和最短路徑。
| 演算法 | 通道特徵 | 適合場景 |
|---|---|---|
| 遞迴回溯 | 長通道明顯,連續轉彎較少,死路通常較深 | 第一次接觸迷宮、追求流暢解謎節奏 |
| 隨機 Prim | 短支路與岔口較密集,整體分佈均勻 | 觀察距離擴散、製作中等難度練習 |
| 隨機 Kruskal | 從多個小區域逐步合併,路徑分佈較平衡 | 列印題、演算法課堂和不同結構的對照實驗 |
例如尺寸同為 20×20 時,遞迴回溯常出現貫穿大片區域的長走廊;隨機 Prim 更像從多個方向不斷長出的分支;隨機 Kruskal 的區域性結構較為分散。切換演算法後可以保留原來的尺寸和種子,對比三種結構在視覺和解謎節奏上的區別。
左右出口會把起點和終點安排在迷宮兩側,上下出口則安排在頂部和底部,這兩種模式適合版式明確的練習紙。“最難路徑”不是簡單增加牆體,而是根據生成後的通路距離尋找相隔更遠的端點,使正確路線覆蓋更多格子。難度仍會受到演算法、尺寸和玩家觀察方式影響,因此最短路徑步數比畫布大小更適合用來比較兩個迷宮的實際路線長度。
一個 10×10 迷宮的最短路徑可能只有 25 步,也可能超過 50 步。生成結果標題會顯示尺寸和最短步數,調整出口方式後可以立即看到路線長度變化。想獲得更復雜的題目,可以先提高尺寸,再選擇“最難路徑”,而不是單純反覆生成相同大小的迷宮。
“顯示最短路徑”會從起點沿唯一正確通路繪製路線,可用於核對答案、講解搜尋演算法或製作帶答案的練習材料。“顯示距離”則依據每個格子到起點的最短步數著色,顏色變化展示搜尋範圍如何向外擴散。熱圖並不代表玩家已經走過的路線,也不會改變牆體;隱藏後迷宮本身保持不變。
教學場景中可以先隱藏答案,請學生手動尋找出口;隨後開啟最短路徑核對,再開啟距離熱圖討論廣度優先搜尋如何逐層訪問格子。由於迷宮沒有環路,每個格子只對應一條從起點出發的路徑,距離數值也就具有唯一含義。
點選“開始試玩”後,使用鍵盤方向鍵或 WASD 移動當前位置,手機和平板可以點選頁面中的方向按鈕。狀態區記錄已走步數和用時,到達終點後會顯示完成提示。點選“重新開始”會把玩家送回當前迷宮的起點,不會重新生成牆體;若要換一張題目,應點選“生成新迷宮”。
SVG 下載儲存的是向量圖形,放大列印時牆線仍然清晰。下載前顯示或隱藏最短路徑,可以分別製作答案版和練習版。距離熱圖適合螢幕分析,列印練習通常建議關閉熱圖,以免顏色干擾路線判斷。檔名包含當前種子,之後可把相同種子重新填入生成器復現原題。
生成邏輯採用圖論中的生成樹思路,分別實現深度優先搜尋式回溯、隨機 Prim 和隨機 Kruskal。最短路徑與距離資料透過迷宮通路上的廣度優先搜尋計算。功能設計參考了 Selfboot 迷宮頁面 的可互動方向,並結合 ToolKK 的分享引數、使用統計、響應式佈局和 SVG 匯出方式重新實現。現在可以回到上方設定一組尺寸和種子,生成第一張可復現的迷宮。