2016-09-03 2 views
0

In diesem einfachen Programm durchquert ein Punkt ein Array diagonal und springt von den Wänden. Jedes Pixel, das es berührt, ändert seine Farbe.Während der True Loop unerwartet stoppt

Auf meinem TI 84+ CE stoppt die unendliche While-Schleife jedes Mal vorzeitig an der gleichen Stelle. Warum?

enter image description here

0→X 
0→Y 
1→C 
1→D 

{11,20→dim([A] 
For(E,1,20,1) 
    For(F,1,11,1) 
     0→[A](F,E) 
    End 
End 

{1,2→dim([B] 
21→[B](1,1 
21→[B](1,2 

{1,2→dim([C] 
12→[C](1,1 
12→[C](1,2 

ClrHome 
ClrDraw 

While 1 
    If X≠[B](1,2) and Y≠[C](1,2) 
    Then 
     Pxl-On(Y,X,RED 
     X+C→X 
     Y+D→Y 
    Else 
     If X≥[B](1,2) 
     Then 
      [B](1,1)-[B](1,2)→[B](1,2) 
      C­1→C 
     End 
     If Y≥[C](1,2) 
     Then 
      [C](1,1)-[C](1,2)→[C](1,2) 
      D­1→D 
     End 
    End 
End 
+1

Was sind die Werte von 'X' und' Y' wenn die Schleife scheinbar aufhört? Was ist der erwartete Wertebereich von 'X' und' Y'? – alvits

+1

Versuchen Sie stattdessen 'Lbl' und' Goto' zu verwenden, sehen Sie ob das Ihnen andere Ergebnisse gibt –

+1

Ich wette, dass die Schleife nicht aufhört, aber die If-Anweisung im Inneren stoppt die Auswertung auf wahr. – Timtech

Antwort

1

Ich würde vermuten, dass Ihre Schleife nicht stoppen, aber es passiert nichts, weil X < B und Y < C. mich persönlich nicht vertraut ist mit der Ti-84 + CE-Version von Ti-Basic , aber, wie die Leute in den obigen Kommentaren vorgeschlagen haben, sehen Sie sich die X- und Y-Werte an, wenn die Schleife nicht mehr funktioniert. Wenn sie zu niedrig sind, haben Sie Ihre Antwort. Viel Glück.

Verwandte Themen