def buscar(self): arbol = Arbol(self.__n) arbol.estadoFinal = self.__edoFnl arbol.raiz = Nodo(self.__edoIni, None, None) arbol.estadosPendientes.add(arbol.raiz) encontrado = False nodoFinal = None while not encontrado: nodosTmp = [] while len(arbol.estadosPendientes) != 0: nodo = arbol.estadosPendientes.pop() if nodo.estado == arbol.estadoFinal: encontrado = True nodoFinal = nodo break else: nodosTmp.append(nodo) for nodoT in nodosTmp: arbol.estadosPendientes.update(arbol.expandirNodos(nodoT)) msg = [] msg.append('Estado final encontrado a una profundidad de: ') msg.append(str(arbol.obtenerProfundidad(nodoFinal))) msg.append('\n\nSe utilizaron %i nodos' % len(arbol.estadosRevisados)) msg.append('\n\nSe utilizaron las siguientes acciones:\n') msg.append(str(arbol.obtenerAcciones())) return ''.join(msg)