首先在當前路徑前 有乙個maze.txt,儲存的內容為
0 0 1 0 0 0 0 0 0 0
0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 1 0 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 1 0
標頭檔案 maze.h
#pragma once
#define _crt_secure_no_warnings 1
#include
#include
#define max_wid 10
#define max_len 10
#define filename "maze.txt"
int getseat(file*stream);
struct seat
;class
maze
;
maze.cpp
#include"maze.h"
file* fp = fopen(filename, "r");
int tmp[max_wid][max_len] = ;
maze::maze()
}}int getseat(file*stream)
}void maze::init()
for (int i = 0; i < max_len;i++)
}}void maze::printmaze()
}bool maze::ispass(seat entry)
//先進去再判斷的解法
bool maze::pathmaze(seat entry)
if (ispass(entry))
seat newentry2(entry);
newentry2.y -= 1;
if (pathmaze(newentry2))
seat newentry3(entry);
newentry3.y += 1;
if (pathmaze(newentry3))
tmp[entry.x][entry.y] = 3;
}return
false;
}maze::~maze()
用來測試 的 main函式 main.cpp
#include"maze.h"
int main()
**寫的可謂是逼格非常低啊。暫時這樣吧,以後有空來修改。 非遞迴實現迷宮求解
迷宮求解問題 用乙個m n的矩陣表示迷宮,0和1分別表示迷宮中的通路和障礙。設計乙個程式,對給定的迷宮,求出找到的第一條從入口到出口的通路,或得到沒有通路的結論。我們指定 迷宮的入口為矩陣的左上角 1,1 迷宮的出口為右下角 m,n 路徑的探索順序依次為 東南西北 即 右下左上 輸入 第一行輸入兩個...
迷宮求解 遞迴
首先來看一下迷宮簡易圖 我們用 0 來表示該位置是牆,用 1 來表示該位置是路.所以,我們在處理迷宮問題的時候可以將其看成乙個二維陣列即可,而對應的每一條路我們可以用座標的形式將其表示,所以還需要有乙個結構體來描述對應的點的 1.相關資料結構 typedef struct maze maze typ...
棧實現迷宮求解問題
總體感觸是 不要著急,一步一步來,問題很容易解決的。首先是要實現乙個迷宮的地圖。明確如何儲存地圖,用vector實現二維陣列,每個元素代表地圖的乙個格仔。需要儲存哪些資訊。一張地圖的某乙個方格需要標示 能否通過,是否走過了。94 struct point 位置資訊可用postype儲存。就是 str...