-
Notifications
You must be signed in to change notification settings - Fork 3
/
Busca_AEstrela.py
32 lines (24 loc) · 997 Bytes
/
Busca_AEstrela.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from VetorOrdenadoAdjacente import VetorOrdenadoAdjacente
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())
from Mapa import Mapa
mapa = Mapa()
aestrela = Busca_AEstrela(mapa.curitiba)
aestrela.buscar(mapa.portoUniao)