Python練習 3 迷宮尋路演算法

2021-10-07 06:53:29 字數 2360 閱讀 5959

用陣列建立出乙個迷宮,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...