使用棧實現迷宮

2021-08-18 07:26:48 字數 2078 閱讀 1519

迷宮是個益智的小遊戲,但是就算是個小遊戲也會有外掛程式吧,那麼就來寫乙個小小的迷宮來玩玩吧(雖然是程式自己走的。。)但是這個不重要,重要的是,我不用燒腦玩迷宮啊~

//物件導向實現迷宮

#includestruct pos

;templateclass maze

} }*/

maze(int* maze)

}} void print()

cout << endl;

} cout << endl;

} bool getpath(pos entry,stack& path)

pos next = cur;

//上下左右探測

next._row -= 1; //上

if (checkaccess(next))

next = cur;

next._row += 1; //下

if (checkaccess(next))

next = cur;

next._col -= 1; //左

if (checkaccess(next))

next = cur;

next._col += 1; //右

if (checkaccess(next))

//回溯

//走完一條路沒有找到出口返回則標記為3

pos back = path.top();

_maze[back._row][back._col] = 3;

path.pop();

} //走到這裡表明沒有找到出路

return false;

} //遞迴實現找路徑

void getpathr(pos entry, stack& path, stack& shortpath)

path.push(entry);

if (entry._row == n - 1)

}pos next = entry;

//上 如何讓它找到每條出路,不返回,直接遞迴

next._row -= 1;

if (checkaccess(entry,next))

//下next = entry;

next._row += 1;

if (checkaccess(entry,next))

//左next = entry;

next._col -= 1;

if (checkaccess(entry,next))

//右next = entry;

next._col += 1;

if (checkaccess(entry,next))

path.pop();

//return false;

} bool checkaccess(pos cur, pos next)

else

}//過載

bool checkaccess(pos pos)

return false;

}private:

int _maze[n][n];

};void testmaze()

, ,,,

,,,,

,};

//如何動態開闢乙個二維陣列

//1、直接開闢一維陣列:m*n+j

//2、指標

//第一種傳參方式

//mazemz(maze);

mazemz((int*)maze);

mz.print();

pos entry;

stackpath;

stackshortpath;

entry._row = 2;

entry._col = 0;

//cout << "是否找到出口?"<

#define _crt_secure_no_warnings 1

#includeusing namespace std;

#include#include"maze.h"

int main()

整個迷宮就完成啦,介面化實現我還在慢慢摸索中~~

棧實現迷宮

棧的型別定義 棧是一種特殊的線性表,限定只能在表的一端進行插入和刪除操作的線性表。在表中,允許插入刪除的一端稱為 棧頂 不允許插入刪除的另一端稱為 棧底 沒有元素的棧稱為空棧,插入元素稱為入棧,刪除元素稱為出棧,稱為先進後出。順序棧型別的定義 順序棧的儲存方式是陣列,需要事先為他分配乙個可容納最多元...

棧實現迷宮演算法

棧實現迷宮回溯演算法 實現 include using namespace std include include define n 10 矩陣最大行列數 template class mazestack 迷宮將要用到的棧 mazestack void push t x this ptr size ...

棧實現迷宮求解問題

總體感觸是 不要著急,一步一步來,問題很容易解決的。首先是要實現乙個迷宮的地圖。明確如何儲存地圖,用vector實現二維陣列,每個元素代表地圖的乙個格仔。需要儲存哪些資訊。一張地圖的某乙個方格需要標示 能否通過,是否走過了。94 struct point 位置資訊可用postype儲存。就是 str...