遞迴實現迷宮求解

2021-07-15 00:24:09 字數 1686 閱讀 8919

首先在當前路徑前 有乙個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...