Skip to content

Instantly share code, notes, and snippets.

@rupalbarman
Created June 9, 2017 05:31
Show Gist options
  • Save rupalbarman/de2239630473767f77daf3c7923b5f5b to your computer and use it in GitHub Desktop.
Save rupalbarman/de2239630473767f77daf3c7923b5f5b to your computer and use it in GitHub Desktop.
maze traversal using dfs
def pretty(maze):
for i in maze:
print(*i)
print()
def trace_ways(maze, i, j, ex, ey, visited):
maze[i][j] = '+'
visited[i][j] = True
if i == ex and j == ey:
pretty(maze)
visited[i][j] = True
#return
if maze[i][j+1] == 'o':
trace_ways(maze, i, j+1, ex, ey, visited)
if maze[i][j-1] == 'o':
trace_ways(maze, i, j-1, ex, ey, visited)
if maze[i+1][j] == 'o':
trace_ways(maze, i+1, j, ex, ey, visited)
if maze[i-1][j] == 'o':
trace_ways(maze, i-1, j, ex, ey, visited)
maze[i][j] = 'o'
maze = []
r, c = map(int, input().split())
maze.append(list(x for x in 'x' * (r+2)))
for i in range(1, r+1):
maze.append(['x'])
maze[i].extend(list(map(str, input().split())))
maze[i].append('x')
maze.append(list(x for x in 'x' * (r+2)))
visited = [[False for _ in range(len(maze[0]))] for _ in range(len(maze))]
maze[5][4] = 'o' #end point
trace_ways(maze, 1, 1, 5, 4, visited)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment