這個系列分為兩部分,第一部分為迷宮的生成及操作,第二部分為自動尋路算法。
我們先看效果:
我們直入正題,先說一說生成迷宮的思路。
整個思路十分簡單:
首先我們將迷宮視為一個m行n列的單元格組合,每一個單元格便可以表示為maze[i][j]。接下來迷宮與m*n單元格的區(qū)別是什么呢?對,迷宮就是相當于不同單元格以某種規(guī)律相互連通,也就相當于我們把相鄰的兩個單元格之間的重合線給去掉,然后按照某種規(guī)律循環(huán),便可生成一個迷宮。
我們假定從左上角開始出發(fā),遍歷每一個單元格,如果該單元格未被訪問過,則查看其相鄰元素(上,下,左,右)是否有未訪問的單元格,如果有則隨機取出一個相鄰元素并打通他們之間的重合線,如果沒有則回退到上一個單元格。
上代碼:
首先我們創(chuàng)建一個構造函數(shù):
function Maze(obj,col,row){ this.col = col || 10; this.row = row || 10; this.canvas = obj.getContext('2d'); this.init(); }
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26