用遞迴寫迷宮

2021-09-18 02:43:10 字數 847 閱讀 7409

題目要求:

輸入三個數,n   m; n和m表示迷宮的n行m列;當輸入m和n為0時結束輸入。

起點用『s'表示,終點用'd'表示,牆壁用』x,' . '表示可走路徑。

例如:

輸出:如果能找到路徑到出口則輸出路徑,否則輸出「no」!

解題思路:

使用深度優先搜尋:dfs

#include using namespace std;

int m,n;

char maze[100][100];

bool mark[100][100];

bool in(int x,int y)

bool dfs(int dx,int dy)//深度優先演算法

x=dx+1; y=dy;//向下

if(in(x,y) && maze[x][y]!='x' && !mark[x][y])

x=dx;y=dy-1;//向左

if(in(x,y) && maze[x][y]!='x' && !mark[x][y])

x=dx-1;y=dy;//向上

if(in(x,y) && maze[x][y]!='x' && !mark[x][y])

maze[dx][dy]='.';

mark[dx][dy]=false;

return false;

}int main()

}if(dfs(x,y))}}

else

cout<

}return 0;

}

用遞迴思想解迷宮問題

include define max row 8 define max col 8 int flag 0 typedef struct point point int maze max row max col point footprints max row max col void print m...

用遞迴函式求出迷宮所有解

牆元素值為0,可通過路徑為 1,通過路徑為足跡。輸入格式為x,y,中間有逗號。依次試探東南西北四個方向 include using namespace std struct postype 迷宮座標位置型別 define maxlength 25 設迷宮的最大行列為25 typedef int ma...

用C寫的3D迷宮

boss說,要看opengl,看了快乙個月,總算出了個像樣的東西,用c寫了個3d迷宮,雖然只有350行 不過邊學邊寫,足足寫了一周時間,還是小有成就感的,活活活!tips 上下左右鍵控制前進後退轉向,空格鍵切換俯檢視,滑鼠右鍵更換地圖 雖然只寫了兩 個 加了點 免得太過單調。效果圖 int angl...