import numpy as np
from queue import Queue
def main():
global g, q, d,n,m
n = int(input("请输入n值:"))
m = int(input("请输入m值:"))
global g,q,d
g = np.zeros((n,m),dtype=int) # 存放迷宫
q = Queue(0) # 队列
d = np.full((n,m),-1,dtype=int) # 走了多少
for i in range(n):
print("请输入第{}行:".format(i))
for j in range(m):
g[i][j] = int(input("请输入第{}个数值".format(j)))
print(g)
print(bfs())
print(g)
def bfs():
d[0][0] = 0
dx = [-1,0,1,0]
dy = [0,1,0,-1] # 上下左右
q.put([0,0]) # 队列加入起点
# 遍历四种可行路线
while q.qsize():
t = q.get()
for i in range(4):
x = t[0] + dx[i]
y = t[1] + dy[i]
if x>=0 and x<n and y>=0 and y<m and g[x][y] != 1 and d[x][y] == -1:
d[x][y] = d[t[0]][t[1]]+1
q.put([x,y])
return d[n-1][m-1]
if __name__ == '__main__':
main()