走迷宮問題

2021-07-23 14:30:48 字數 1282 閱讀 4274

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...

走迷宮問題

如下由 和 符號組成的圖案表示乙個迷宮,在這個迷宮中,表示可以走的路徑,可以通過,而 表示迷宮的牆,是不能穿過的。我們的目的就是要從迷宮的起點走到終點,找出一條合適的路徑,當然最短路徑最好。站在迷宮中的乙個位置上,環顧四周,總共有四個方向可以選擇,而這每乙個方向都有可能成功,同樣也有可能失敗。在成功...