Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.77 KB | None | 0 0
  1. import collections
  2. wall,clear,goal = 0, 1, 9
  3. grid1 = ['100',
  4.         '100',
  5.         '119']
  6. width, hight = 3, 3
  7.  
  8.  
  9. def bfs(grid, start):
  10.         queue = collections.deque([[start]])
  11.         seen = set([start])
  12.         while queue:
  13.                 path = queue.popleft()
  14.                 x,y = path[-1]
  15.                 if grid[y][x] == goal:
  16.                         return path
  17.                 for x2, y2 in ((x+1, y), (x-1, y), (x, y+1), (x, y-1)):
  18.                         if 0 <= x2 < width and 0 <= y2 < hight and grid[y2][x2] != wall and (x2, y2) not in seen:
  19.                                 queue.append(path + [(x2, y2)])
  20.                                 seen.add((x2, y2))
  21.                                 print("in 2nd loop", path)
  22.  
  23.  
  24. path = bfs(grid1, (0, 0))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement