福野泰介の一日一創 - create every day

プチコン3号のSMILE BASIC同様、@ラベルで分岐先を決められるようになりました(ver 1.2β8)。

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公開グループから!

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像