Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def make_maze(maze_string):
- return maze_string.split('\n')
- def bfs_explore_maze(maze):
- destination = (len(maze) - 1, len(maze) - 1)
- start = (0, 0)
- queue = [start]
- visited = [[False for x in maze] for y in maze]
- visited[start[0]][start[1]] = True
- while len(queue) > 0:
- # print(queue)
- current_node = queue.pop(0)
- if(current_node == destination):
- return True
- for neighboor in get_neighboors(current_node, maze):
- # print(neighboor, visited[neighboor[0]][neighboor[1]])
- if(visited[neighboor[0]][neighboor[1]] == False):
- visited[neighboor[0]][neighboor[1]] = True
- queue.append(neighboor)
- return False
- def get_neighboors(tup, maze):
- neighboors = []
- i = tup[0]
- j = tup[1]
- if(i + 1 < len(maze) and maze[i][j] != 'W'):
- neighboors.append((i + 1, j))
- if(i - 1 >= 0 and maze[i][j] != 'W'):
- neighboors.append((i - 1, j))
- if(j + 1 < len(maze) and maze[i][j] != 'W'):
- neighboors.append((i, j + 1))
- if(j - 1 >= 0 and maze[i][j] != 'W'):
- neighboors.append((i, j - 1))
- return neighboors
- def path_finder(maze_string):
- maze = make_maze(maze_string)
- can_exit = bfs_explore_maze(maze)
- return can_exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement