1行に複数の命令を書くには : で繋げます、1命令ずつ左から右へと実行されます。
0から3までの数を表示してみる。
FOR X=0 TO 3 : ? X : NEXT
0
1
2
3
OK
これは繰り返し命令で、変数 I に 0 を入れ、NEXTの前までの命令を実行した後、
変数 I に1つづ足して同じ処理を繰り返し行い、3まで処理したら終わります。
プログラム中にコメント(実行されない文字)を書くことができます。
REM へべれけ
REM(リマーク)は '(シングルクォーテーション)で代用できます。
' 「自分の長所を見つけるには、自分が楽にできることを探すこと」
文字の色を指定するには COLOR 命令で 色番号 0から15の全16色が指定できます。
FOR C=0 TO 15
COLOR C '←文字色が0は透明、1は黒なので背景が黒いと見えない
? C, '←「,」(カンマ)はタブとして空白が空く
NEXT
文字が見えない時は ACLS と打てば、全ての表示を元通りに戻してくれる。
FOR Y=240 TO 0 STEP -16 'STEPはマイナス値を指定することもできる
GLINE 0,Y,399,Y,#BLUE '16ドット毎に横線を引く
WAIT 60
NEXT
FOR Y=0 TO 239 STEP 16
FOR X=0 TO 399 STEP 16 '←FOR文は重ねて使える、これをネストと呼ぶ
GBOX X,Y,X+14,Y+14,RGB(0,X,Y) 'グラフィック画面に四角を描く
WAIT '←WAITは待つ時間を省略できる、この場合1/60秒
NEXT
NEXT
FOR Y=0 TO 239 STEP 16
FOR X=0 TO 399 STEP 16
GFILL X+1,Y+1,X+13,Y+13,RGB(255-X,255-Y,0) '塗り潰しの四角を描く
WAIT '←WAITを入れているのは描くところを見せるため
NEXT
'↑ループの内側は、インデント(字下げ)と言ってスペースを空けるとプログラムが見やすくなる
NEXT
グラフィック画面に描画命令は他にも、円(GCIRCLE)、塗り潰し三角形(GTRI)、点(GPSET)などがある、説明を見ながら使ってみるといい。
プログラムは、その時の何かの条件の違いにより別の動作をさせることができる、これを条件分岐という。
IF文 THEN文を使うと条件分岐できる。
INPUT "すうじをいれてね ",NUM
IF NUM==0 THEN COLOR 3 '←変数 NUM が 0 だった場合、文字色を赤に切り替える
? "すうじは";NUM;"です。"
条件に合わなかった処理を一緒に記述できる。
これにはIF THEN文より後に ELSE文を書き、そこに条件に合わなかった処理を書く
INPUT "すうじをいれてね ",NUM
IF NUM==0 THEN COLOR 3 ELSE COLOR 5 '←変数 NUM が 0以外だった場合、文字色を緑に切り替える
? "すうじは";NUM;"です。"
IF THENの間に入る式を、条件式と言う、条件式は次の様に書くことができる。
①定数、変数、関数、式を比較演算子で繋ぐ
IF NUM==8 THEN '←NUMが8
IF NUM!=8 THEN '←NUMが8じゃない
IF NUM<8 THEN '←NUMが8よりも小さい
IF NUM>8 THEN '←NUMが8よりも大きい
IF NUM<=8 THEN '←NUMが8以下(8を含む)
IF NUM>=8 THEN '←NUMが8以上(8を含む)
IF (R*R*PI())>100 THEN '円の面積を計算、100を超えていたら
実は、条件式は真偽値を判定しているだけです、真偽値の真とは 0以外 のこと、偽とは 0 のこと
②定数、変数、関数、式を1つ書く
IF 1 THEN '←1が0以外なら
IF 0 THEN '←0が0以外なら(ありえない)
IF TRUE THEN '←TRUEが0以外なら
IF FALSE THEN '←FALSEが0以外なら(ありえない)
IF NUM THEN '←NUMが0以外なら
IF NUM-8 THEN '←NUM-8が0以外なら
(TRUE、FALSEはシステム変数であり、最初から値が入っている)
IF THEN ELSEを1行で書くのは狭いし見づらい、そこで複数行で書くことができる。
IF (条件式①) THEN '←THENの右には処理を書いてはいけない
(①真の処理)
ELSEIF (条件式②) THEN '←ELSEIFを使えば次の条件分岐が連続でできる
(②真の処理)
ELSE
(偽の処理)
ENDIF '←最後に必ずENDIFを付けること
INPUT "1:don't go 2:can't go",N1
INPUT "1:京都弁 2:大阪弁",N2
IF N1==1 THEN
IF N2==1 THEN
PRINT"「行かへん」(don't go)"
ELSE
PRINT"「行けへん」(don't go)"
ENDIF
ELSE
IF N2==1 THEN
PRINT"「行けへん」(can't go)"
ELSE
PRINT"「行かれへん」(can't go)"
ENDIF
ENDIF
REPEAT
VSYNC '←処理が速過ぎるので1/60秒の表示更新まで待つ
B = BUTTON() '←ユーザーの押したボタン情報を変数Bに取得
IF B==0 THEN CONTINUE '←何も押されて無ければループ評価に戻る
IF B==#UP THEN ?"↑" '←上が押されたら「↑」を表示
IF B==#DOWN THEN ?"↓" '←下が押されたら「↓」を表示
IF B==#LEFT THEN ?"←" '←左が押されたら「←」を表示
IF B==#RIGHT THEN ?"→" '←右が押されたら「→」を表示
UNTIL B==#A '(A)ボタンが押されたらループを抜ける