2016-08-03 52 views
2

我知道這個命令比較並可以減去數值,但我並不確切地看到它是如何工作的。我已經使用了TI BASIC編程教程網站(http://tibasicdev.wikidot.com/movement-explanation),我需要在整個List上進行說明。有人可以解釋TI BASIC List命令嗎?

與列表中的這部分代碼如下所示,:

:min(8,max(1,A+sum(ΔList(Ans={25,34→A 
:min(16,max(1,B+sum(ΔList(K={24,26→B 

和網站解釋是這樣:代碼

「這是這段代碼是如何工作的。當你按一個鍵,它的值被存儲到K.我們檢查K是否等於我們通過將它與列表{24,26和{25,34}進行比較所按的鍵之一,這導致列表{0,1},{1 ,0}或者{0,0},然後我們看看這個奇怪的命令Δlist(看是否向上,向下,向左或者向右移動)什麼樣的Δlist(很簡單,Δlist(從第二個減去第一個元素)以前的列表,並存儲作爲新的一個元素列表{1},{-1}或{0}。然後我們通過取一個字節列表的總和將列表變成一個實數。這個1,-1,或0被添加到A」。

回答

3

ΔList(的命令減去在從先前的元件列表的每個元素。該代碼使用一些欺騙與它緊湊地返回1如果一個鍵被按下和-1

ΔList(計算列表的連續項之間的差異,並在新的列表返回他們。

ΔList({0,1,4,9,16,25,36}) 
    {1 3 5 7 9 11} 

也就是說,ΔList({0,1,4,9,16,25,36}) = {1-0, 4-1, 9-4, 16-9, 25-16, 36-25} = {1 3 5 7 9 11}

當列表中只有兩個元素時,ΔList({a,b})因此等於{b-a}。那麼sum(ΔList({a,b}))等於b-a,因爲這是列表中唯一的一項。假設您的示例中K爲26;即按下了鍵>

B+sum(ΔList(K={24,26→B  Result of expression: 
      K    26 
      K={24,26  {0,1} 
     ΔList(K={24,26  {1} = {0 - 1} 
    sum(ΔList(K={24,26  -1 
B       [current x-position of player] 
B+sum(ΔList(K={24,26→B  [add 1 to current x-pos. of player] 

類似地,如果按下按鍵24(左鍵),則B將減少。