C++基於控制檯的迷宮實現(上)
1 程式簡介
在C++控制檯程式中,使用一個二維陣列表示迷宮,陣列中的元素0表示牆,1表示路,如下程式碼所示
int maze[8][8] = {
1,1,0,1,1,1,0,1,
1,1,0,1,1,1,0,1,
1,1,1,1,0,0,1,1,
1,0,0,0,1,1,1,1,
1,1,1,0,1,1,1,1,
1,0,1,1,1,0,1,1,
1,0,0,0,1,0,0,1,
0,1,1,1,1,1,1,1
};
其中,maze[0][0]表示起點,maze[7][7]表示終點,該程式的輸入為從起點到終點的路徑,如圖1所示。
圖1 迷宮的路徑顯示
2 迷宮分析
每個站立點都四個方向(上、下、左、有),每個方向上都對應一個點。在這四個點中,有一個點是當前站立點的“上一個點”,另外三個點是當前站立點的“下一個點”,如圖2所示,紅色框為當前站立點,藍色框為“上一個點”,黃色框為三個“下一個點”。
圖2 站立點的四個方向
當前站立點有三種狀態,分別是“終點”、“通路”和“死路”。如果當前站立點是“終點”,則停止搜尋;如果當前站立點是“通路”,則向下繼續走;如果當前站立點是“死路”,則要向回走,然後搜尋其它路徑。其流程如圖3所示。
3 程式實現
3.1 迷宮中每個點的實現
使用一個struct表示迷宮中的每個點。該結構包含了三個成員變數,分別是該點的橫座標,縱座標和該點的值。
typedef struct MStackElem
{
int x;
int y;
int val;
}MStackElem;
圖3 判斷迷宮路徑流程
相關文章
- C++實現迷宮的生成與解決C++
- C++實現控制檯學生學籍管理系統C++
- 創造你的專屬迷宮 《磚塊迷宮建造者》上架WeGameGAM
- (C++)資料結構實驗二——迷宮問題C++資料結構
- C++程式設計_簡易計時器(Timer)的控制檯實現C++程式設計
- [C++]常用的windows控制檯操作C++Windows
- 基於RL(Q-Learning)的迷宮尋路演算法演算法
- 【Javascript + Vue】實現隨機生成迷宮圖片JavaScriptVue隨機
- 解密迷宮問題:三種高效演算法Java實現,讓你輕鬆穿越未知迷宮解密演算法Java
- 【dawn·資料結構】迷宮問題(C++)資料結構C++
- 1744 迷宮
- 509迷宮
- 走迷宮
- 基於深度強化學習(DQN)的迷宮尋路演算法強化學習演算法
- 基於JavaFX圖形介面演示的迷宮建立與路徑尋找Java
- 【Javascript + Vue】實現對任意迷宮圖片的自動尋路JavaScriptVue
- JAVA 實現《複雜迷宮》遊戲|CSDN創作打卡Java遊戲
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- C++ 實現基於TCP的聊天室C++TCP
- 基於OpenSSL的HTTPS通訊C++實現HTTPC++
- 迷宮的最短路徑
- 3090 走迷宮
- 3089 探索迷宮
- 迷宮問題
- dotnet 基於 DirectML 控制檯執行 Phi-3 模型模型
- 基於Vue實現拖拽升級(九宮格拖拽)Vue
- c++迷宮問題回溯法遞迴演算法C++遞迴演算法
- C++基於armadillo im2col的實現C++
- C++基於模板實現智慧指標C++指標
- c++控制檯寫一個計時器C++
- 基於螢石雲實現的九宮格影片監控效果
- Sentinel 實戰-控制檯篇
- 簡單介紹Python迷宮生成和迷宮破解演算法Python演算法
- 日誌庫 winston 的學習筆記 - logger.info 列印到控制檯上的實現原理筆記
- 內容是超正統的迷宮RPG?PSP遊戲《迷宮旅人2》深度解析遊戲
- C\C++控制檯程式隱藏方法總結C++
- 拼多多2018暑期實習招聘線上程式設計題:迷宮尋路程式設計
- 迷宮可行路徑數
- Python迷宮生成器Python