用陣列建立出乙個迷宮,0為可以通過的路徑,1為牆壁。
l =[[
0,0,
1,1,
1],[
1,0,
1,1,
1],[
0,0,
1,0,
0],[
0,1,
1,0,
1],[
0,0,
0,0,
1]]for i in l:
print
(i)
用兩個陣列記錄開始的位置和已走過的位置
stack =[[
0,0]
]history =[[
0,0]
]
定義上、下、左、右四個函式實現對當前位置四周能走路徑的判斷。
def
up(location)
:if location[1]
==0:return
false
else
: new_location =
[location[0]
, location[1]
-1]if new_location in history:
return
false
elif l[new_location[0]
][new_location[1]
]==1:
return
false
else
:return
true
defdown
(location)
:if location[1]
==5:return
false
else
: new_location =
[location[0]
, location[1]
+1]if new_location in history:
return
false
elif l[new_location[0]
][new_location[1]
]==1:
return
false
else
:return
true
defleft
(location)
:if location[0]
==0:return
false
else
: new_location =
[location[0]
-1, location[1]
]if new_location in history:
return
false
elif l[new_location[0]
][new_location[1]
]==1:
return
false
else
:return
true
defright
(location)
:if location[0]
==5:return
false
else
: new_location =
[location[0]
+1, location[1]
]if new_location in history:
return
false
elif l[new_location[0]
][new_location[1]
]==1:
return
false
else
:return
true
location =[0
,0]while stack[-1
]!=[2
,4]:
if up(location)
: lo = stack[-1
]continue
if down(location)
: lo = stack[-1
]continue
if left(location)
: lo = stack[-1
]continue
if right(location)
: lo = stack[-1
]continue
stack.pop(
) lo = stack[-1
]print
(stack)
python迷宮尋路 迷宮尋路問題 A 演算法
迷宮尋路問題 a 演算法 迷宮尋路問題是人工智慧中的有趣問題,如何表示狀態空間和搜尋路徑是尋路問題的重點,本文的主要內容是a 搜尋演算法的理解和應用,首先對基本知識和演算法思想進行了解,再通過其對迷宮問題求解應用,編寫 python 程式進行深入學習。1.搜尋區域 我們假設某個人要從 start 點...
迷宮尋路(A星尋路演算法)
題目 假設我們有乙個7 5大小的迷宮,如下圖所示,綠色格仔表示起點,紅色的格仔表示終點,中間的3個深灰色格仔表示障礙物。請找到一條從起點到終點最短的路徑。解題思路 需要引入兩個集合和乙個公式,如下 具體步驟 把起點放入openlist 檢查openlist中是否有值,如果沒有則無法到達終點,結束尋路...
python尋路 A 尋路演算法 python實現
coding utf 8 import math import cv2 as cv class point object def init self,position,parent self.position position self.parent parent self.f 0 self.g 0...