Solving maze puzzle in python

 This is a 5*5 puzzle solution




def print_maze(maze):

    for i in maze:

        for j in i:

            print(j,end="")

        print()


def find_start(maze):

    for i in range(5):

        for j in range(5):

            if maze[i][j]=="S":

                return i,j

    return False


def is_valid_position(maze,r,c):

    if r<0 or c<0:

        return False

    if r>4 or c>4:

        return False

    if maze[r][c] in " E":

        return True

    return False


def solve(maze):

    stack=[]

    if find_start(maze):

        stack.append( (find_start(maze)))

    print("Stack is ",stack)

    while len(stack)>0:

        r,c=stack.pop()


        if maze[r][c]=="X":

            continue

        if maze[r][c]=="E":

            print("Goal")

            return True


        maze[r][c]="X"

        print("Current position is ",r,c)

    

                

        if is_valid_position(maze,r-1,c):

            stack.append((r-1,c))

        if is_valid_position(maze,r+1,c):

            stack.append((r+1,c))

        if is_valid_position(maze,r,c-1):

            stack.append((r,c-1))

        if is_valid_position(maze,r,c+1):

            stack.append((r,c+1))


        print_maze(maze)

        print("Stack is ",stack)

    return False



        

maze=[["#","#","#","#","#"],

      ["S"," ","#","#","#"],

      ["#"," "," ","#","#"],

      ["#","#"," ","#","#"],

      ["#","#"," "," ","E"]

      ]

solve(maze)  #Call




            



        

    

        

                      


    



    


Comments

Popular posts from this blog