#!/usr/local/bin/python2.7 def bfs(graph, ex, wy): queue = [(ex,wy,0)] currl = 0 while len(queue): (x,y,l) = queue.pop(0) if x<0 or y<0 or x==len(graph) or y==len(graph[0]): continue if l!=currl: currl = l printGraph(graph) if graph[x][y]==0: graph[x][y]=1 queue+=[(x+1,y,l+1),(x-1,y,l+1),(x,y-1,l+1),(x,y+1,l+1)] def dfs(graph, ex, wy): stack = [(ex,wy,0)] while len(stack): (x,y,l) = stack.pop(len(stack)-1) if x<0 or y<0 or x==len(graph) or y==len(graph[0]): continue if graph[x][y]==0: graph[x][y]=1 stack+=[(x+1,y,l+1),(x-1,y,l+1),(x,y-1,l+1),(x,y+1,l+1)] printGraph(graph) def printGraph(graph): for i in graph: print i print x = 11 y = 11 curr = [[0]*y for i in xrange(x)] bfs(curr,x/2,y/2)