Breitensuche

"""
Name: S. Forster
Datum: 18.2.2019
Beschreibung: Breitensuche
"""

from graph import Graph

def step():
    """
        Schrittfunktion: Stellt ein einzelner Suchschritt dar.
        Muss beim Erzeugen des Graph-Objektes registriert werden.
        Wird dann bei jedem Tastendruck aufgerufen. 
    """
    if(len(graph.openList) > 0):        

        nextNode = graph.openList[0]
        graph.openList.remove(nextNode)

        graph.closedList.append(nextNode)

        for peer in graph.peers[nextNode]:
            if peer not in graph.closedList and peer not in graph.openList:
                peer.parent = nextNode
                graph.openList.append(peer)
                if peer == graph.targetNode:
                    print("Weg zum Ziel gefunden!")
                    graph.running = False  

graph = Graph(step)           # graph erzeugen und Schritt-funktion registrieren

graph.loadGallenbach()       # Daten laden. Alternative: graph.loadDeutschland()
#graph.startNode  = graph.w   # Startknoten vorbereiten
#graph.targetNode = graph.s   # Zielknotens vorbereiten
graph.init()                 # startknoten auf openList

graph.run()                  # starten