Пример #1
0
	def search(x, y):
		    if grid[x][y] == 2:
		        print 'found at %d,%d' % (x, y)
			graphics.dest(x,y)        
			return True
		    elif grid[x][y] == 1:
		        print 'wall at %d,%d' % (x, y)
		        playtile("wall")
		        return False
		    elif grid[x][y] == 3:
		        print 'visited at %d,%d' % (x, y)
			return False
	     
		    print 'visiting %d,%d' % (x, y)
		    a=str(x)+str(y)
		    graphics.path(x,y)
		    playtile(a)
		    grid[x][y] = 3
		    graphics.visit(x,y)
		 
		    if ((x < len(grid)-1 and search(x+1, y))
		        or (y > 0 and search(x, y-1))
		        or (x > 0 and search(x-1, y))
		        or (y < len(grid)-1 and search(x, y+1))):
		        return True
	
		    return False		 
Пример #2
0
def bfspath(path):
    import play

    for point in range(len(path)):
        a, b = int(path[point]) / 10, int(path[point]) % 10
        c = str(a) + str(b)
        play.playtile(c)
        pygame.draw.rect(screen, blue, (b * 15, a * 15, width, height), thickness)
        pygame.display.update()
        time.sleep(1)
        pygame.draw.rect(screen, white, (b * 15, a * 15, width, height), thickness)
        pygame.display.update()
        pygame.display.flip()
        pygame.display.update()
Пример #3
0
def bfspath(path):
    import play
    for point in range(len(path)):
        a, b = int(path[point]) / 10, int(path[point]) % 10
        c = str(a) + str(b)
        play.playtile(c)
        pygame.draw.rect(screen, blue, (b * 15, a * 15, width, height),
                         thickness)
        pygame.display.update()
        time.sleep(1)
        pygame.draw.rect(screen, white, (b * 15, a * 15, width, height),
                         thickness)
        pygame.display.update()
        pygame.display.flip()
        pygame.display.update()
Пример #4
0
		        or (x > 0 and search(x-1, y))
		        or (y < len(grid)-1 and search(x, y+1))):
		        return True
	
		    return False		 
	search(0,0)	
elif(schoice==2):
	import bfsmaze
	bfsmaze.bfssolution(grid,database.start,database.dest,database.choice)
	ans=bfsmaze.ans
	graphics.mazedisplay(grid,2,database.dest)
	for x in range(len(ans)):
		ans[x]=int(ans[x])
		a=str(ans[x]%10)+str(ans[x]/10)
		graphics.path(ans[x]%10,ans[x]/10)
		playtile(a)
		graphics.visit(ans[x]%10,ans[x]/10)
		if(ans[x]==database.dest):
			graphics.dest(ans[x]%10,ans[x]/10)
if(schoice==3):
	x,y=10,10
	grid =database.grid
	grid[database.xx][database.yy]=2
	graphics.mazedisplay(grid,1,-1)
	screen=graphics.screen
	red=graphics.red
	pygame.draw.circle(screen, red, (x,y), 7, 0);
	pygame.display.update()
	wall=(0,0,0,255)
	boundary=(0,255,0,255)
	while 1: