Exemplo n.º 1
0
    def buscar(self, atual):
        print('\nAtual: {}'.format(atual.nome))
        atual.visitado = True

        if atual == self.objetivo:
            self.achou = True
        else:
            self.fronteira = VetorOrdenadoAdjacente(len(atual.adjacentes))
            for a in atual.adjacentes:
                if a.cidade.visitado == False:
                    a.cidade.visitado = True
                    self.fronteira.inserir(a)
            self.fronteira.mostrar()
            if self.fronteira.getPrimeiro() != None:
                AEstrela.buscar(self, self.fronteira.getPrimeiro())
Exemplo n.º 2
0
    def buscar(self, atual):
        print("\nAtual: {}\nMeus adjacentes são:".format(atual.nome))
        atual.visitado = True
        Buscagulosa.rota += atual.nome

        if atual == self.objetivo:
            self.achou = True
            print("Minha rota foi: {}".format(Buscagulosa.rota))
            print("Meu custo foi: {}".format(Buscagulosa.custo))
        else:
            self.fronteira = VetorOrdenado(len(atual.adjacentes))
            self.fronteira_adjacentes = VetorOrdenadoAdjacente(
                len(atual.adjacentes))
            for i in atual.adjacentes:

                if i.cidade.visitado == False:
                    i.cidade.visitado = True
                    self.fronteira.inserir(i.cidade)
                    self.fronteira.mostrar()
            if self.fronteira.getPrimeiro() != None:
                Buscagulosa.custo += i.distancia

            if self.fronteira.getPrimeiro() != None:

                Buscagulosa.buscar(self, self.fronteira.getPrimeiro())
Exemplo n.º 3
0
    def buscar(self, atual):
        print("\nAtual: {}".format(atual.nome))
        atual.visitado = True
        BuscaAEstrela.rota += atual.nome

        if atual == self.objetivo:
            print("Objetivo {} foi alcançado. ".format(self.objetivo.nome))
            self.achou = True
            print("Minha rota foi: {}".format(BuscaAEstrela.rota))
            print("Meu custo foi: {}".format(BuscaAEstrela.custo))
        else:
            self.fronteira = VetorOrdenadoAdjacente(len(atual.adjacentes))
            for a in atual.adjacentes:
                if a.cidade.visitado == False:
                    a.cidade.visitado = True
                    self.fronteira.inserir(a)

            self.fronteira.mostrar()
            if self.fronteira.getPrimeiro() != None:
                BuscaAEstrela.custo += self.fronteira.adjacentes[0].distancia
                BuscaAEstrela.buscar(self, self.fronteira.getPrimeiro())
Exemplo n.º 4
0
class Busca_AEstrela:
    def __init__(self, objetivo):
        self.objetivo = objetivo
        self.achou = False

    def buscar(self, atual):
        print("\nAtual: {}".format(atual.nome))
        atual.visitado = True

        if atual == self.objetivo:
            print("Objetivo {} foi alcançado. ".format(self.objetivo.nome))
            self.achou = True
        else:
            self.fronteira = VetorOrdenadoAdjacente(len(atual.adjacentes))
            for a in atual.adjacentes:
                if a.cidade.visitado == False:
                    a.cidade.visitado = True
                    self.fronteira.inserir(a)
            self.fronteira.mostrar()
            if self.fronteira.getPrimeiro() != None:
                Busca_AEstrela.buscar(self, self.fronteira.getPrimeiro())