The program below was made for a game named CheckIO, and it works. I'm just wondering if there is any way to make the code more readable.

edit: hi luke15g

```
def checkio(maze_map):
    #the walls of the maze are already surrounded by 1's
    start_x,start_y=1,1
    stop_x,stop_y=10,10
    class Point:
        directions={'N':(-1,0),'W':(0,-1),'E':(0,1),'S':(1,0)}
        def __init__(self,other=None,direction=None):
            if other!=None:
                self.road=other.road+direction
                self.x=other.x+Point.directions[direction][0]
                self.y=other.y+Point.directions[direction][1]
            else:
                self.x,self.y=None,None
                self.road=''
        def hit(self):
            return maze_map[self.x][self.y]==1
        def new_point(self):
            for char in Point.directions:
                x=Point(self,char)
                if not x.hit():
                    yield x
        def found_it(self):
            return self.x==stop_x and self.y==stop_y
    p=[Point()]
    p[0].x,p[0].y=start_x,start_y
    begin=0
    maze_map[start_x][start_y]=1
    while begin<=len(p)-1:
        if p[begin].found_it():
            return p[begin].road
        x=p[begin].new_point()
        while 1:
            try:
                new=next(x)
            except StopIteration:
                break
            p.append(new)
            maze_map[new.x][new.y]=1
        begin+=1

```