1. 程式人生 > >生成迷宮並找出走出迷宮的路徑

生成迷宮並找出走出迷宮的路徑

首先生成迷宮,然後利用已經生成的迷宮構建出一個圖。迷宮的所有單元構成圖的頂點,單元間沒有牆則表明兩個頂點相互鄰接。最後以起點為起始頂點找到其到終點的最短路徑。

稍微修改一下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);

結果如下所示
這裡寫圖片描述