Hay Leute, ich hab eine Rekursive Funktion die leider mit einem Stack-Overflow endet.
Ich versuch das ganze jetzt grad etwas zu optimieren. Dazu folgende Fragen:
Ich frage einen RGB Wert ziemlich häufig mit:
GetGValue(Form1.Bild.Canvas.Pixels[X,Y]); ab. Da wollte ich gerne wissen, ob es schlauer ist, das Bild irgendwie anders zu speichern und nicht immer über das ganze Form1.Canvas.... zu gehen!?
Für die nächste Frage hier mal die Funktionsweise:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Gehe nach links -> erlaubt: Rufe dich selbst mit neuem Standpunkt auf sonst:
Gehe nach unten -> erlaubt: Rufe dich selbst mit neuem Standpunkt auf sonst:
Gehe nach rechts -> erlaubt: Rufe dich selbst mit neuem Standpunkt auf sonst:
Gehe nach oben -> erlaubt: Rufe dich selbst mit neuem Standpunkt auf sonst: exit; |
Ich markiere also verschiedene Bereiche, dabei geh ich jedes mal in alle vier Richtungen (links, rechts, unten, oben). Wenn er einen erlaubten Punkt hat geht er von dem aus weiter.
Es kann jetzt aber sein, dass ein Punkt noch 3 offene Wege hat, diese Punkte aber schon von einer anderen Funktion besucht wurden.
Das er diesen Wegen nicht mehr nachgeht ist klar, aber ich würd gerne die ganze Funktion aus dem Speicher löschen. Geht das irgendwie?
Hoffe ihr könnt mir helfen!
Vielen Dank