from model.puzzle import Puzzle
from model.node import Node
from action.generate import Tree

matrix = [
    [1, 3, 4],
    [4, 5, 6],
    [7, 8, 0]
]

p = Puzzle(matrix)
p.move_to("LEFT")
p.move_to("UP")


class BSF:
    def __init__(self,init_matrix,final_matrix):
        self.init_matrix = init_matrix
        self.final_matrix = final_matrix
        self.run(init_matrix,final_matrix)

    def run(self,init_m,final_m):
        init_node = Node(Puzzle(init_m))
        final_node = Node(Puzzle(final_m))
        tree = Tree(init_node,final_node)
        tree.procedure(init_node,final_node)


def main(init,final):
    # Recibir una Matriz inicial y final
    BSF(init,final)