Meine erste Antwort war falsch.
Ich meinte das die Schlange in einem Bereich um sich angibt, wieviele Züge
minimal notwendig sind, bis diese passiert werden könnte, also in der Art:
Delphi-Quellcode:
-
4 4 4 4 S 4..
3 3 3 S 3..
2 2 S 2..
1 S 1..
Welche Information stehen für dich im Labyrint bereit, ausser den Wänden (W)
der gegnerische Schlangen (S) und des Apfels (A)?
(a) Theoretisch ist die (S) eine Wand die sich aber bewegen kann. Deshalb könnte
man (S) ignorieren und zuerst den kürzesten Weg zum Apfel ermitteln.
(b) Dir ist bekannt, wo sich (S) befindet.
Jetzt musst du nur noch herausfinden, ob sich eine Position von (S) auf dem
kürzesten Weg befindet.
Wenn ja, dann könntest du die Werte von (S) von den Werten des Wegs abziehen.
Sind dort Werte von 0 oder kleiner vorhanden, so ergibt sich eine Kollision,
die auf dem direkten und kürzesten Weg nicht aufgelöst werden kann.
(c) Diese Kollisionspunkte (K) werden dann bei einer erneuten Berechnung wie
eine echte Wand (W) interpretiert. Dann geht die Berechnung weiter wie unter (a)
Sollte bei dieser Berechnung kein kürzester Weg mehr möglich sein, so geht es
in die Berechnung von Zügen zur Zeitgewinnung um (S) doch noch auszuweichen.
Ich hoffe ich habs so geschrieben das man es verstehen kann.