Bin die letzten drei Tage wieder fleissig am werkeln. Musste mich etwas einlesen, aber es läuft gut.
Wie ihr vielleicht noch wisst, habe ich es mit den ganzen Bewegungsmöglichkeiten etwas übertrieben. So kann ich z.B. die Bewegungen eines Schachpferdchens definieren. Da das alleine ja langweilig wäre, kann das Pferdchen mehrmals hüpfen. Bislang wurde einfach berechnet welche Felder erreicht werden können. Mir hat es optisch nicht gepasst, dass es unklar ist wie das Pferdchen den Standort erreicht. Das habe ich heute korrigiert. Ob ich jeden Fall abgedeckt habe wird sich zeigen.
Das Backtracking hat sich als ziemlich umständlich rausgestellt, da ich kaum Information über den Weg gespeichert habe. Bis heute mittag war gar keine Information vorhanden, inzwischen speichere ich aber in jedem Feld in wie vielen Sprüngen es erreicht werden kann.
Aktuell läuft mein Algorithmus so:
Jede Zelle überprüfen ob sie mit weniger Sprüngen erreicht werden kann als das Ziel. Diese Felder werden in Listen pro Sprunganzahl gesammelt. Wenn mein Ziel in 4 Sprüngen erreicht werden kann, dann habe ich eine Liste mit 3 Sprungfelder und 2 Sprungfelder (1 ist das erste Feld, muss so sein weil alles was nicht erreichbar ist, ist 0).
Ich filtere die 3 Sprungfelder nach Erreichbarkeit zum Ziel. Wenn das Ziel nicht erreichbar ist, wird das Feld aus meiner Liste entfernt.
Danach filtere ich die 2 Sprungfelder nach Erreichbarkeit zu allen 3 Sprungfeldern.
Im Bild sind alle gefilterten Felder mit ( ) gekennzeichnet.
Bislang scheint es gut zu laufen, es läuft auch wenn sich das Pferdchen drehen kann und manchmal diagonal springt, wie hier beim letzten Sprung zu sehen (rechts, rechts, runter).
![Bild](https://i.imgur.com/TGYqIn5.png)