## Berekent hoe lang het duurt vooraleer alle bakens van Gondor zijn aangestoken

# inlezen van de graaf komt uit eerdere oefeningen
gondor_graaf = {}

with open('gondor-graaf.txt') as bestand:
    for lijn in bestand:
        plaatsen = lijn[:-1].split('|')  #Belangrijk: new line op het einde moet verwijderd worden!
        sleutel = plaatsen[0]
        waarde = plaatsen[1:]
        gondor_graaf[sleutel] = waarde


start_plaats  = "Minas Tirith"
wachtrij = [start_plaats, 0]
geplaatst_in_wachtrij  = [start_plaats]

while len(wachtrij) > 0:       # zolang wachtrij nog niet leeg
    plaats = wachtrij.pop(0)   # neem voorste stad uit wachtrij
    minuten = wachtrij.pop(0)  # neem tijd tot voorste stad uit wachtrij
    # print (plaats, minuten)    # helpt om te zien wat er gebeurt
    buren = gondor_graaf[plaats]
    for buur in buren:
        if buur not in geplaatst_in_wachtrij:
            # voeg buur toe aan wachtrij en aan reeds toegevoegde steden
            wachtrij.append(buur)
            wachtrij.append(minuten + 1)
            geplaatst_in_wachtrij.append(buur) 

print (f"Alle bakens zijn aangestoken na {minuten} minuten!")             

