#include#include#define m 11
#define n 10
//預設迷宮結構
char maze_array[m][n]=,,
,,,,
,,,,
};//記錄迷宮結點的路過次數
int maze_node_passby_array[m][n]=,,
,,,,
,,,,
};//輸出當前的迷宮局勢
void print_maze();
//輸出記錄路徑結點出現次數的陣列
void print_maze_node_passby_array();
//路徑結點類
class maze_path_node
maze_path_node(maze_path_node& t)//拷貝建構函式
~maze_path_node() //析構函式
bool operator!=(maze_path_node& t)
maze_path_node& operator=(maze_path_node& t)
return *this; }
void print_maze_path_node()
else
if(n<=n-2&&maze_array[m][n+1]!=1)
else
if(m<=m-2&&maze_array[m+1][n]!=1)
else
if(n>=1&&maze_array[m][n-1]!=1)
} //向下
else
if(direction==1)
else
if(m<=m-2&&maze_array[m+1][n]!=1)
else
if(n>=1&&maze_array[m][n-1]!=1)
else
if(m>=1&&maze_array[m-1][n]!=1)
} //向左
else
if(direction==2)
else
if(n>=1&&maze_array[m][n-1]!=1)
else
if(m>=1&&maze_array[m-1][n]!=1)
else
if(n<=n-2&&maze_array[m][n+1]!=1)
} //向上
else
if(direction==3)
else
if(m>=1&&maze_array[m-1][n]!=1)
else
if(n<=n-2&&maze_array[m][n+1]!=1)
else
if(m<=m-2&&maze_array[m+1][n]!=1)
} }//把路徑節點存入一維陣列中!
void maze_path::push_maze_path_node(maze_path_node ma)
//判斷路徑是否有迴路
int maze_path::is_back()
}//簡化路徑
void maze_path::sim_maze_path()
else
if(n<=n-2&&maze_array[m][n+1]!=1)
else
if(m<=m-2&&maze_array[m+1][n]!=1)
else
if(n>=1&&maze_array[m][n-1]!=1)
} //向下
else
if(direction==1)
else
if(m<=m-2&&maze_array[m+1][n]!=1)
else
if(n>=1&&maze_array[m][n-1]!=1)
else
if(m>=1&&maze_array[m-1][n]!=1)
} //向左
else
if(direction==2)
else
if(n>=1&&maze_array[m][n-1]!=1)
else
if(m>=1&&maze_array[m-1][n]!=1)
else
if(n<=n-2&&maze_array[m][n+1]!=1)
} //向上
else
if(direction==3)
else
if(m>=1&&maze_array[m-1][n]!=1)
else
if(n<=n-2&&maze_array[m][n+1]!=1)
else
if(m<=m-2&&maze_array[m+1][n]!=1)
} maze_node_passby_array[m][n]++;//路過次數加1
maze_array[m][n]=2;
push_maze_path_node(maze_path_node(m,n,direction,maze_node_passby_array[m][n]));//新增路徑結點
}
c解決迷宮問題
問題描述 在迷宮中求從入口到出口的一條簡單路徑。迷宮可用方塊來表示,每個方塊或者是通道 用空白方塊表示 或者是牆 用帶陰影的方塊表示 迷宮求解 這個經典的問題,應用棧這種資料結構,自己設計乙個方案,並上機實現從入口到出口的一條簡單路徑。為了表示迷宮,用二維陣列表示,如 int a 10 8 3是入口...
c 解決迷宮問題
一 實驗內容 1.1 知識點 1.2 實驗環境 2.1 地圖 利用二維陣列定義乙個高 20 長 30 的地圖,同時用特殊 標記地圖的每乙個位置。比如通路設定為 0,死路設定為 1 等,在顯示地圖的時候只需要根據標記列印出地圖每個位置對應的符號。比如 0 為通路,用 兩個空格表示 1 為死路,用 方塊...
迷宮問題 遞迴解決
建立人 wdl 建立時間 2021 3 21 描述 public class migong 左右全部置為1 for int i 0 i 8 i 設定擋板,1表示 map 3 1 1 map 3 2 1 map 1 2 1 map 2 2 1 輸出地圖 system.out.println 地圖的情況...