1.這個是迷宮,1代表牆,0代表通路。
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 0 0 0 0 0 0 1 1
1 1 0 1 1 1 1 0 1 1
1 1 0 1 1 1 1 0 1 1
1 1 0 1 1 1 1 1 1 1
2.用棧來存通路的位置資訊,這裡我沒有用庫里的棧,我自己實現了乙個棧
#pragma once
templateclass stack
void push(const t& x)
void pop()
t& top()
bool empty()
size_t size()
~stack() }
void display()
int _row;
int _col;
};void initmaze(int* maze) //初始化陣列
//上pos next=cur;
next._row -=1;
if(checkaccess(next, maze,cols ,rows ))
//右
next=cur;
next._col +=1;
if(checkaccess(next, maze,cols ,rows ))
//下next=cur;
next._row +=1;
if(checkaccess(next, maze,cols ,rows ))
//左next=cur;
next._col -=1;
if(checkaccess(next, maze,cols ,rows ))
//四個方向都不通
maze[cur._row *cols+cur._col ]=3;
s.pop();
} return false; //沒有出路
}//找0
void printfmaze(int* maze)
{ for(int i=0;is;
int maze[10][10];
initmaze((int*)maze);
printfmaze((int*)maze);
cout<<"是否有通路:"<
走迷宮問題
給一迷宮表個和入口位置,找出並列印出從入口到出口的路徑 注意 迷宮 我們可以用乙個二維陣列來表示,但是如果用二維陣列表示,將唯一固定,迷宮趣味性大大降低並 長度增大 因此,我們最好是將迷宮 儲存在一檔案中,在實現時再從檔案中讀取 採用模板來實現可實現復用性 1 我們可沿著入口逐一方向進行試探,若有通...
走迷宮問題
乙個10 10的迷宮,每乙個格仔裡面存0或者1,0代表可以走,1代表障礙。輸入值 起始座標 輸出值 能否達到設定的目標座標點 bool型變數,1或者0 1 include 2 include 3 4 define ex 2 5 define ey 2 6bool findpath false 7 i...
走迷宮問題
如下由 和 符號組成的圖案表示乙個迷宮,在這個迷宮中,表示可以走的路徑,可以通過,而 表示迷宮的牆,是不能穿過的。我們的目的就是要從迷宮的起點走到終點,找出一條合適的路徑,當然最短路徑最好。站在迷宮中的乙個位置上,環顧四周,總共有四個方向可以選擇,而這每乙個方向都有可能成功,同樣也有可能失敗。在成功...