IchigoJam BASICの原始的な行番号による分岐は、マシン語のアドレスの概念に近く、ラベル名に悩む必要がないのが利点です。 ただ、長いプログラムをつくる際、行番号の振り直し(RENUM)の後、行番号の修正が必要なのが面倒でした。
AからZまで入力するタイピングゲームはこのようにプログラムできます。
1 'TYPING GAME 10 CLT:N=ASC("A") 20 @LOOP 30 ?CHR$(N) 40 @KB:IF INKEY()!=N GOTO @KB 50 IF N=ASC("Z") ?TICK():END 60 N=N+1 70 GOTO @LOOP
こちらが元の、ラベルを使わない同じ機能のプログラム。
文字数はラベルが無いほうが少ないので、ラベルの使用は、ロジックの基本が分かった中級者くらいからがいいかもしれません。
1 'TYPING GAME 10 CLT:N=ASC("A") 20 ?CHR$(N) 30 IF INKEY()!=N GOTO 30 40 IF N=ASC("Z") ?TICK():END 50 N=N+1:GOTO 20
また、GOSUB/RETURNでつくるサブルーチンに@ラベルで名前が付けられるのも便利ですね!
1 'DNA 100 @LOOP 110 D=RND(4) 120 GOSUB @DNA 130 GOTO @LOOP 140 @DNA 150 IF D=0 ?"A"; 160 IF D=1 ?"G"; 170 IF D=2 ?"C"; 180 IF D=3 ?"T"; 190 RETURN
参考→「サブルーチンでつくるDNA / はじめてのプログラミングその16」
容量の限界が近いので省エネ実装です。
- @マーク以後、:か'か終端をラベル名として認識(行の先頭のみ有効、大文字小文字を区別しカナも使用可能)
- 数式内に@マークがあれば、プログラムの先頭から一致するラベルを見つけたらその行番号の数となります
(つまり、GOTO @LOOP+10 や、?@LOOP などの表記も可能です)
「IchigoJam-FAN」 - 1.2β8のダウンロードこちらのFacebook公開グループから!