def __init__(self,*args,**kwargs):
     '''Metodo constructor de la clase laberinto'''
     b=Busqueda()
     self.prueba=2
     if (len(args)==2) and isinstance(args[0],str) and isinstance(args[1],str):
         self.read_json(args[0])
         if(self.comprobar_integridad()):
             print("Ha dado error en el json")
         estado_inicial,estado_objetivo,maze=b.readjson(args[1])
     else:
         self.filas=args[0]
         self.columnas=args[1]
         self.casillas=self.tablero()
         self.to_json(self.casillas)
         estado_inicial=str((0,0))
         estado_objetivo=str((self.filas-1,self.columnas-1))
         maze=None       
     lista_estados=b.generar_estados(self.casillas)
     
     if(self.comprobar_integridad_fichero_nodos(estado_inicial,estado_objetivo,maze)):
         print('Introduzca la estrategia del problema\n')
         print('Las estrategias disponibles son: A, BREADTH, DEPTH, UNIFORM, GREEDY\n')
         estrategia=str(input('>>'))
         estrategia=estrategia.upper()            
         while  (estrategia!='A' and estrategia!='BREADTH' and estrategia!='DEPTH' and estrategia!='UNIFORM' and estrategia!='GREEDY'):
             print('Error introduciendo estrategia\n')
             print('RECUERDE: las estrategias disponibles son: A, BREADTH, DEPTH, UNIFORM, GREEDY\n')
             estrategia=str(input('>>'))
             estrategia=estrategia.upper()                
         estado,frontera,visitados,lista_solucion=self.problema(estado_inicial,estado_objetivo,maze,lista_estados,estrategia)
         self.dibujar(self.casillas,frontera,visitados,lista_solucion,estrategia)
         b.imprimir_solucion(lista_solucion,self.filas,self.columnas,estrategia)
     else:
         print("Finalizando programa....")