2016-09-03 155 views
0

在這個簡單的程序中,一個點對角地穿過陣列並從牆壁反彈。它觸及的每個像素都會改變顏色。雖然真循環意外停止

在我的TI 84+ CE上,無限while循環每次都會在同一個點過早停止。爲什麼?

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

循環顯然停止時,「X」和「Y」的值是多少? 'X'和'Y'的預期值範圍是什麼? – alvits

+1

嘗試使用'Lbl'和'Goto'來代替,看看是否給你不同的結果 –

+1

我會打賭循環沒有停止,但If語句裏面的停止評估爲true。 – Timtech

回答

1

我猜想,你的循環不會停止,但沒有任何反應,因爲X < B和Y < C.我與TI-基本的TI-84 + CE版本親自陌生,但是,正如人們在上面的評論中所建議的,當循環顯示停止工作時,請查看X和Y值。如果他們太低,你有你的答案。祝你好運。