Lee-AlgorithmusDer Lee-Algorithmus ist eine von mehreren Lösungen zur Breitensuche/Pathfinding, also das Finden eines Weges von einem Ausgangspunkt zu einem Zielpunkt. Zuerst wurde er bei der automatischen Erstellung von Platinen angewandt, kann aber auch bei Computerspielen zum Einsatz kommen, um die Figuren innerhalb der Spielwelt zu bewegen. AlgorithmusIm Folgenden wird der Lee-Algorithmus in Pseudocode angegeben. Gegeben ist ein Array, in dem es betretbare Felder, unbetretbare Felder sowie einen Start- und einen Endpunkt gibt. 1) Initialisierung - Der Startpunkt wird mit 0 markiert - i := 0 2) Wellenförmige Ausbreitung - REPEAT - Markiere alle unmarkierten, betretbaren Felder, deren Nachbar mit i markiert ist, mit i+1 - i := i+1 UNTIL ((Endpunkt erreicht) or (kein Feld kann markiert werden)) 3) Backtrace - gehe zum Endpunkt REPEAT - Gehe zum nächsten Feld, das mit einem Wert markiert ist, der genau dem Wert −1 entspricht, den das aktuelle Feld hat - markiere dieses Feld als Teil des Pfades UNTIL (Startpunkt erreicht wird) 4) Aufräumen Dieses muss nur geschehen, wenn man z. B. Platinen layouten will. In Computerspielen, wo man die Wege von Spielfiguren berechnen will, muss man nicht den Pfad blockieren, weil die Spielfiguren ja den Pfad entlanggelaufen sind und ihn nicht mehr blockieren. - Der gefundene Pfad wird als nicht begehbar markiert. - Alle anderweitig markierten Felder werden auf ihren Initialwert zurückgesetzt. WeblinksQuellen
|