生成迷宮並找出走出迷宮的路徑
阿新 • • 發佈:2019-02-04
首先生成迷宮,然後利用已經生成的迷宮構建出一個圖。迷宮的所有單元構成圖的頂點,單元間沒有牆則表明兩個頂點相互鄰接。最後以起點為起始頂點找到其到終點的最短路徑。
稍微修改一下Graph.hpp,因為頂點下標從0開始,預設初始頂點為0(迷宮入口)。
由迷宮生成圖的程式碼如下所示
//將生成的迷宮構建成圖,然後找出從起點到終點的最短路徑
Graph g(n*n);
for(int i=0;i<n*n;++i)
{
if(!s.getRight(i))
{
g.setVertex(i, vector<int >{i+1});
g.setVertex(i+1, vector<int>{i});
}
if(!s.getBottom(i))
{
g.setVertex(i, vector<int>{i+n});
g.setVertex(i+n, vector<int>{i});
}
}
g.unweighted(0);
g.printPath(n*n-1);
結果如下所示