可以使用 TI-Basic 程式設計簡單的遊戲。這裡給出的示例的解釋旨在簡單說明,而不是技術指南。
以下程式是使用 TI-Basic 編寫的簡單乒乓球遊戲。我們首先定義遊戲程式碼
:DelVar C :DelVar G :7→A :8→B :1→D :-1→E :6→F :While not(C :ClrHome :Output(A,B,".") :Output(8,F,"--") :If A=1 :-D→D :If A=7 :Then :If B≥F and B≤F+1 :-D→D :End :If B=1 or B=16 :-E→E :(A=8)→C :A+D→A :B+E→B :getKey→K :F+(K=26 and F<13)-(K=24 and F>1)→F :End :Pause "U LOSE" :ClrHome :Output(1,1,"")
這裡,我們開始解釋程式碼
:Delvar C :Delvar G :7→A :8→B :1→D :-1→E :6→F
這些第一行將變數初始化為特定值。A 和 B 變數是球的座標。C 使整個迴圈保持執行。D 和 E 會改變我們的球座標。它們允許我們使用比使用 1 和 -1 更有效的編碼。F 是我們槳的水平座標,因此它可以來回移動。
:While not(C
在not(命令返回 1(真),如果條件等於 0。這等效於使用 While C=0,但減少了一個位元組。
:ClrHome
每次有東西移動時(或至少每次迴圈重複時)重新整理螢幕。
:Output(A,B,".") :Output(8,F,"--")
這將符號列印到螢幕上。
:If A=1 :-D→D
這告訴球透過反轉其方向來“反彈”天花板。
:If A=7 :Then :If B>=F and B<=F+1 :-D→D :End
這裡,這個步驟在很小的空間內做了一些事情。第一行檢查球是否在螢幕底部。如果是,那麼它檢查球是否在槳上。如果槳在那裡,那麼球就會反彈。
:If B=1 or B=16 :-E→E
這告訴球反彈右側和左側的牆壁。
:If A=8 :1→C
這是觸發損失的原因。這會檢查球是否擊中了螢幕底部。如果是,那麼程式將終止迴圈。
:A+D→A :B+E→B
此步驟透過更改座標使球在螢幕上移動。
:getKey→K :F+(K=26 and F<13)-(K=24 and F>1)→F
這是使遊戲執行的原因。這是使用者輸入步驟。getkey→K 將使用者按鍵儲存到 K 中。然後,在下一行中,F(槳的水平座標)會增加一,如果使用者按下 ⯈ (26) 並且小於 13(螢幕右側 = 16 - 3(用於槳的大小))
一個等式如果為真總是變為 1,如果為假則變為 0,因此如果為真,那麼它將在那個方向移動一格,如果使用者按下 ⯇ (24) 則同樣原則適用。
:End
此行定義了程式主要部分執行所在的迴圈的結束。
:Pause "U LOSE" :ClrHome :Output(1,1,"")
這些行在您失敗時執行。它將顯示一條訊息,清除螢幕並阻止顯示“完成”。
以下是更最佳化的版本
PROGRAM:PONG :7→A:8→B :DelVar C1→D :-1→E:6→F :Repeat C :If A=1 :-D→D :E-2Emax({A=7,B>=F,B<=F+3→ :E-2E(B=1 or B=16)→E :A=8→C :Output(A,B," //")1 space :A+D→A :B+E→B :Output(A,B,"." :getKey :F+(Ans=26)-(Ans=24 :If 15<=Ans :1 :If 0>=Ans :13 :Output(8,F," //") :Ans→F :Output(8,F,"--") :End :ClrHome :Output(1,1,"U LOSE")
可以新增計分系統和其他功能,但將在後面的文章中解釋。這個程式執行得很好,只是游標移動不夠快。為了使平臺移動得更快,請更改
:getKey→K :F+(K=26 and F<13)-(K=24 and F>1)→F
為
:getKey→K :If (K=26 and F<13) :F+2→F :If (K=24 and F>1) :F-2→F
也可以寫成以下形式
:getKey→K :F+2(K=26 and F<13)-2(K=24 and F>1)→F
這將使平臺跳過一個空間,使平臺更快。
前一個:高階程式設計
下一個:命令列表
目錄:TI-Basic Z80 程式設計