网站大量收购独家精品文档,联系QQ:2885784924

电脑鼠的迷宫演算法-知识分享平台.PPT

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电脑鼠的迷宫演算法-知识分享平台.PPT

電腦鼠的迷宮演算法 班級:四技系統三甲 組員家宏 致中 指導老師:黎靖 摘要 如果把電腦鼠比喻成人來看,那硬體就是四肢,而軟體就相當於電腦鼠的大腦。在此報告中討論兩種路徑演算,兩種皆可再細分很多種演算法。 區域性演算法 又分為右手法則、左手法則、中左法則、中右法則、向心法則。 全域性演算法 又分為洪水演算法、A*演算法。 區域性演算法 應用在探索迷宮的階段。 由於迷宮狀態未知,因此只能根據目前電腦鼠週遭的環境,試著尋找到達終點的路徑。 演算法有左手法則、右手法則、中左法則、中右法則及向心法則等。 全域性演算法 應用在已經部份或完全探索迷宮後,此時可以根據已探索的迷宮資料找到起點至終點的最短路徑。 演算法則有洪水填充法(Flood-Fill algorithm)及A*演算法與其諸多的變形演算法等。 選擇你想搜尋的演算法 右手法則 電腦鼠遇到岔路時,以右手為優先,其次直線、左手。 右手法則-迷宮範例 左手法則 電腦鼠遇到岔路時,以左手為優先,其次直線、右手。 左手法則-迷宮範例 中左法則 電腦鼠遇到岔路會以直線優先,其次左手,最後右手。 中左法則-迷宮範例 中右法則 電腦鼠遇到岔路會以直線優先,其次右手,最後左手。 中右法則-迷宮範例 向心法則 向心法則要先畫出其迷宮的座標,然後在遇到岔路時,依目前位置與中心點之間的距離來判斷下一步,再依向心權位值小的格子前進(中心點為0) 洪水演算法 洪水演算法是一種以距離為主的迷宮演算法,由終點開始填洪水值,先被洪水流過的方格其洪水值肯定比較晚流過之方格的洪水值小,所以依洪水值大小,由大到小即可找出最短路徑 A*演算法(1/15) 最廣泛被大家使用的演算法,用於一般的RPG遊戲、或是大型的戰略遊戲 A*演算法重點在於開啟列表及關閉列表的使用。 路徑評估的公式F = G + H。 G代表走到鄰近節點的移動代價。 H代表從所選的相鄰節點到終點的移動代價 A*演算法(2/15) 深綠色(A3) → 起始節點 粉紅色(E7) → 終點節點 棕色 → 父節點 藍色 → 設定為障礙物 青綠色 → 列入開啟列表 紫色 → 列入關閉列表 A*演算法(3/15) 將A3設定為父節點,並將鄰近節點(青綠色部分)列入開啟列表中,計算出節點的F值。 並將其各點指向父節點如圖2。 A2 → G=10 H=9*10 F=100 A4 → G=10 H=7*10 F=80 B2 → G=14 H=8*10 F=94 B3 → G=10 H=7*10 F=80 B4 → G=14 H=6*10 F=74 A*演算法(4/15) 將B4設為父節點(如圖3),將A3從開始列表刪除,加入關閉列表。 B4的相鄰節點A4、B3已在開啟列表中, A5 → G=28 H=6*10 F=88 A*演算法(5/15) 將B3設為父節點(如圖4),將B4從開啟列表中刪除且加入關閉列表中。 B3的相鄰節點為A2、B2、A4已在開啟列表,C4為障礙物。 C2 → G=24 H=7*10 F=94 C3 → G=20 H=6*10 F=80並將其節點指向父節點 A*演算法(6/15) 設定C3為父節點(如圖5),將B3從開啟列表中刪除且加入關閉列表中,D3為障礙物,D2為對角線都也不在此討論中使用。 所以直接選擇C2為下一個節點。 A*演算法(7/15) 將C2設為父節點(如圖6),將C3從開啟列表中刪除並加入關閉列表,計算C2相鄰節點的F值。 B1 → G=38 H=9*10 F=128 C1 → G=34 H=8*10 F=114 D1 → G=38 H=7*10 F=108 D2 → G=34 H=6*10 F=94 並將其節點指向父節點。 A*演算法(8/15) 將D2設為父節點(如圖7),將C2從開啟列表中刪除並加入關閉列表中,因為不考慮對角線,故E3不列入相鄰節點中。 E1 → G=48 H=6*10 F=108 E2 → G=44 H=5*10 F=94 並將其指向父節點。 A*演算法(9/15) 將E2設定為父節點(如圖8),並將D2從開啟列表中刪除且加入關閉列表中。計算E2相鄰節點的F值。 E3 → G=54 H=4*10 F=94 F1 → G=58 H=7*10 F=128 F2 → G=54 H=6*10 F=114 F3 → G=58 H=5*10 F=108並將其指向父節點。 A*演算法(10/

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档