欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python矩陣走迷宮

錢淋西1年前7瀏覽0評論

Python作為一種高效而又強大的編程語言,被廣泛應用于各種領域。其中,使用Python來實現矩陣走迷宮也是一項非常有趣的任務。

想象一下,你置身于一個由障礙物和通道構成的矩陣中。你需要通過編寫Python代碼,找到從起點走到終點的最短路徑。

為了實現這個任務,我們首先需要定義一個矩陣。在Python中,可以通過列表來模擬一個矩陣。下面是一個示例:

maze = [
[0, 1, 1, 0, 0],
[0, 0, 0, 1, 0],
[1, 1, 0, 0, 1],
[0, 0, 1, 1, 1],
[0, 0, 0, 0, 0]
]

上面的代碼定義了一個5*5的矩陣,其中0表示通道,1表示障礙物。

接下來,我們需要編寫一個函數來實現矩陣走迷宮。下面是一個示例函數:

def maze_solver(maze, start, end):
height = len(maze)
width = len(maze[0])
directions = [(0, 1), (0, -1), (1, 0), (-1, 0)]
visited = set()
queue = [(start, 0)]
while queue:
curr_pos, curr_dist = queue.pop(0)
if curr_pos == end:
return curr_dist
if curr_pos in visited:
continue
visited.add(curr_pos)
for dir in directions:
next_pos = (curr_pos[0] + dir[0], curr_pos[1] + dir[1])
if next_pos[0]< 0 or next_pos[0] >= height or next_pos[1]< 0 or next_pos[1] >= width:
continue
if maze[next_pos[0]][next_pos[1]] == 1:
continue
queue.append((next_pos, curr_dist + 1))
return -1

這個函數接受三個參數:maze表示迷宮的矩陣,start表示起點的坐標,end表示終點的坐標。函數使用廣度優先搜索算法來尋找起點到終點的最短路徑。

最后,我們可以使用下面的代碼來測試上面的函數:

maze = [
[0, 1, 1, 0, 0],
[0, 0, 0, 1, 0],
[1, 1, 0, 0, 1],
[0, 0, 1, 1, 1],
[0, 0, 0, 0, 0]
]
start = (0, 0)
end = (4, 4)
print(maze_solver(maze, start, end))  # 輸出:9

上面的代碼將會輸出從起點到終點的最短路徑長度。

總之,Python的強大功能和豐富的庫使得編寫矩陣走迷宮成為了一項有趣而易于實現的任務。