999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Scratch之自動走迷宮

2020-09-08 06:15:34陳新龍
電腦報 2020年33期
關鍵詞:深度

陳新龍

如何讓程序自己走迷宮是一個挺深奧的問題,涉及生成迷宮的prim算法、深度優先算法,走迷宮的廣度優先算法、深度優先算法等。不過那些都有一定難度,我們還是先從最簡單的一種算法開始吧,這種自動走迷宮的算法其實是把自己當成盲人走迷宮。這就是“左手法則”,這種法則只針對有墻壁且出口在墻壁上的迷宮(如果出口在大廳中心的情況就不適用了),只要順著墻壁走,都能走出去。因為出口和入口的墻壁都是閉合曲線,所以這種“法則”在這類迷宮中是通用的。不過“左手法則”的效率太低,只適用于小范圍的固定迷宮,而大范圍的迷宮用這種算法會耗費大量的時間。未來我也會和大家分享“深度優先”等算法和如何自動生成隨機迷宮。

最經典的“左(右)手法則”算法:在一張連通的迷宮圖中我們用左右任意一只手一直摸著墻就一定可以走出這個迷宮,也稱為繞墻走算法(或摸墻算法),是一種迷宮搜索的初級算法。左手法則的關鍵點:

1. 走到墻邊

2. 監測左邊是否有墻壁

3. 監測前面是否有墻壁

4. 左右轉向

下面我們把左手摸墻的走法用流程圖表示出來,更加方便讓大家理解。

代碼分析:

程序以網上找到的一個簡單迷宮為背景,迷宮墻壁為黑色。圓球角色Ball走迷宮,Bell鈴鐺為迷宮出口。

我們需要自定義三個函數模塊積木,對應左手法則的三個判斷(走到墻邊,判斷左邊是否有墻,判斷前邊是否有墻)。

1. 走到墻邊

這個功能就是讓角色一直沿著既定的方向前進,直到碰到墻壁。這里可以使用偵測中的“碰到顏色”積木來實現。

2. 判斷左邊是否有墻

根據流程圖結合代碼,要求角色每行動一步就要判斷一次左邊是否存在墻壁。在這個自定義函數中,我們還要定義一個“左邊是否有墻”的變量,如果左邊存在墻壁,就將這個變量設為1,否則這個變量值就是0(一直重復判斷直到角色最終走出迷宮)。如何判斷左邊是否存在墻壁呢?我們可以讓角色往左邊移動一步,然后再偵測一下是否碰到了墻壁(在本例中,墻壁顏色是黑色的,可以使用“碰到顏色黑”作為檢測條件)就可以了。當左移一步碰到墻壁,則說明左側存在墻壁,如果沒有碰到墻壁,則說明左邊沒有墻壁。

因為左移動作只是為了做偵測,并不能真的移過去,所以在檢測完畢后還要將角色進行復位。把移動的步數退回來,轉過的角度也要轉回來。

3. 判斷前方是否有墻

這個功能和判斷左邊是否有墻的方法一致,也需要添加“前邊是否有墻”變量,用“碰到顏色黑”為條件。當前進一步碰到墻壁,則說明前方存在墻壁,變量值為1,如果沒有碰到墻壁,則說明左邊沒有墻壁,變量值為0。并退回到原處。

接下來看分析主程序的代碼部分,設置變量初始值為0,恢復角色初始位置,設置角色大小方向。走到墻邊,然后開始進行角色移動過程的兩種判斷,重復執行直到角色到達終點也就是碰到Bell,結束循環。在循環的過程中先判斷左邊是否有墻壁,當左邊沒墻時向左轉,且角色前進一步。這個前進移動非常重要,如果忘記寫前進代碼的話,會造成角色原地打轉的Bug。當左邊有墻時,才可以進行前方是否有墻壁的判斷。如果前方存在墻壁,因為這時左邊前面都有墻壁,我們只能右轉,注意只是右轉并沒有前進。如果判斷前方沒有墻壁,那么此時就可以放心地前進一步。最終角色會一直沿自己左邊的墻壁運動直到終點,走出迷宮。

今天用最簡單的左手法則算法完成了自動走迷宮的目標,對算法有了一點最基礎的了解,在未來的時間里,我也會和大家分享深度優先算法和遞歸的算法,更快地走出迷宮。并學會自動生成隨機迷宮地圖。

猜你喜歡
深度
深度理解不等關系
四增四減 深度推進
深度理解一元一次方程
深度觀察
深度觀察
深度觀察
深度觀察
芻議深度報道的深度與“文”度
新聞傳播(2016年10期)2016-09-26 12:14:59
提升深度報道量與質
新聞傳播(2015年10期)2015-07-18 11:05:40
微小提議 深度思考
主站蜘蛛池模板: 中文字幕调教一区二区视频| 国产青青草视频| 亚洲精品视频免费看| 久久国产高潮流白浆免费观看| 日日噜噜夜夜狠狠视频| 精品偷拍一区二区| 亚洲av无码成人专区| 欧美va亚洲va香蕉在线| 午夜福利网址| 九九香蕉视频| 69av免费视频| 日韩国产 在线| 欧美日韩一区二区三| 日韩中文欧美| 国产第三区| 国产一级毛片yw| 99视频在线看| 久久免费看片| 99性视频| 青青青视频91在线 | 日韩高清中文字幕| 欧美色亚洲| 免费国产黄线在线观看| 国产本道久久一区二区三区| 久久综合国产乱子免费| 一本大道视频精品人妻| 国产精品区网红主播在线观看| 亚洲精品国产自在现线最新| 久久婷婷人人澡人人爱91| 2022精品国偷自产免费观看| 99精品在线视频观看| 亚洲精品桃花岛av在线| 97综合久久| 日本欧美在线观看| 国产在线拍偷自揄观看视频网站| 欧美精品1区| 国产不卡在线看| 欧美一区日韩一区中文字幕页| 亚洲无码久久久久| 欧美精品二区| 亚洲综合片| 永久免费无码成人网站| 精品久久久久久中文字幕女| 四虎永久在线精品影院| 国产国模一区二区三区四区| 亚洲免费黄色网| 97se亚洲综合不卡| 久久天天躁狠狠躁夜夜躁| 特级毛片8级毛片免费观看| 久久精品人人做人人爽电影蜜月| 中文字幕亚洲专区第19页| 欧美日韩国产系列在线观看| 国产福利大秀91| 欧美日韩北条麻妃一区二区| 亚洲香蕉伊综合在人在线| 成年人视频一区二区| 免费国产无遮挡又黄又爽| a级毛片毛片免费观看久潮| 国产网友愉拍精品视频| 日韩精品毛片| 亚洲中文无码av永久伊人| 亚卅精品无码久久毛片乌克兰| 99re热精品视频中文字幕不卡| 亚洲第七页| 婷婷中文在线| 欧美午夜视频在线| 54pao国产成人免费视频| 色香蕉网站| 69视频国产| 欧美精品在线免费| 亚洲AV无码乱码在线观看代蜜桃| 亚洲成人免费在线| 玩两个丰满老熟女久久网| 日本午夜精品一本在线观看| 国产精品视频免费网站| 九九线精品视频在线观看| 国模沟沟一区二区三区 | 久久黄色免费电影| 免费人成视频在线观看网站| 99久久人妻精品免费二区| 亚国产欧美在线人成| 午夜老司机永久免费看片|