這個(gè)系列分為兩部分,第一部分為迷宮的生成及操作,第二部分為自動尋路算法。

      我們先看效果:

      我們直入正題,先說一說生成迷宮的思路。

      整個(gè)思路十分簡單:

      首先我們將迷宮視為一個(gè)m行n列的單元格組合,每一個(gè)單元格便可以表示為maze[i][j]。接下來迷宮與m*n單元格的區(qū)別是什么呢?對,迷宮就是相當(dāng)于不同單元格以某種規(guī)律相互連通,也就相當(dāng)于我們把相鄰的兩個(gè)單元格之間的重合線給去掉,然后按照某種規(guī)律循環(huán),便可生成一個(gè)迷宮。

       我們假定從左上角開始出發(fā),遍歷每一個(gè)單元格,如果該單元格未被訪問過,則查看其相鄰元素(上,下,左,右)是否有未訪問的單元格,如果有則隨機(jī)取出一個(gè)相鄰元素并打通他們之間的重合線,如果沒有則回退到上一個(gè)單元格。

      上代碼:

      首先我們創(chuàng)建一個(gè)構(gòu)造函數(shù):

function Maze(obj,col,row){ this.col = col || 10; this.row = row || 10; this.canvas = obj.getContext('2d'); this.init();
}

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式