von elias.koegel » Sa 13. Jun 2009, 22:07
Hm, wirklich seltsam, vor allem, da der Quellcode eigentlich gar keine gebrochenen Zahlen erzeugen dürfte.
Es gibt eine Sache, die sollte man bei Grafik-Befehlen wissen: Einige Befehle (so war es zumindest bei den 9x50ern) verwenden die Variablen X und Y. Das heißt, wenn man Grafik verwendet hat, sollte man diese beiden Variablen nach Möglichkeit in Ruhe lassen, es sei denn, man wusste genau, was passieren wird. Ich habe da so die Vermutung, das hier der Fehler liegt. Überprüfe mal die For-Schleifen etwas genauer. Lass dir einfach jede Variable ausgeben und überprüfe den Wert, dann könntest du die Ursache finden.
PS: Ich nehme an, das soll ein Worms werden? Wenn ja, dann halte ich deinen "Anstoßtest" (die For-Schleifen) für logisch ungünstig. Dadurch ist man nicht mehr in der Lage, direkt an seiner eigenen Schlange entlang zu gehen. Außerdem sollte es reichen, wenn du folgende mit X bezeichneten Punkte prüfst (du prüfst bisher alle):
0 X 0
X 0 X
0 X 0
Möglicherweise würde es mit 4 if-Schleifen sogar schneller werden, als mit 2 geschachtelten For.
PPS: Noch ein kleiner Tipp für die ersten Zeilen: Es sollte einen Befehl ViewWindow 0, 50, 1, 0, 50, 1 geben, der genau das gleiche macht. Spart Schreibarbeit.
PPPS: Noch ein möglicher Bug: Du musst mit dem ViewWindow sehr gut aufpassen. Am besten legst du ihn genauso fest, wie der Bereich Pixel hat, also zum Beispiel ViewWindow 1, 127, 1, 1, 63, 1 (oder so ähnlich, bin mir nicht ganz sicher.)
Sonst hast du zum Beispiel zwischen Plot 1,1 und Plot 1,2 entweder eine Lücke, oder sie liegen genau aufeinander, was dir spätestens beim Anstoßtest auf die Füße fällt. Das ViewWindow sollte also genau so sein, dass alle Plots, in denen sich entweder X oder Y um 1 unterscheiden, genau nebeneinander liegen.