2019.06.05作成

2019.06.10更新

 

制御と分岐に関する命令は、以下の23の命令があります。

@LABEL

GOTO

GOSUB

RETURN

ON GOTO

ON GOSUB

ON BREAK GOTO

IF THEN ELSE

CASE WHEN ENDCASE

LOOP ENDLOOP

FOR TO NEXT

WHILE WEND

REPEAT UNTIL

CONTINUE

BREAK

END

STOP

DEF END

DEFARGC

DEFARG

DEFOUTC

DEFOUT

CALL

 


右差し@

メモ意味

プログラムやデータの位置を示す名前です。

引数にラベルを使用する命令は下記の通りです。(分かってる限りで)

・GOTO

・GOSUB

・RESTORE

 

本

@ENEMY_TYPE

 

ひらめき電球用途

主に、データベースを構築する場合に「ここにそのデータがありますよ!」と印をつけておく目的で使用します。

一応、GOTO命令やGOSUB命令を使用し、関数のようにも使用できますが、個人的にはそのような使用を制限し、関数を使用する場合はDEFを使用するといいと思ってます。(関数を検索する場合に検索窓にDEFと打ち込めば済むようになるため)

 

時計使用頻度

 


右差しGOTO

メモ意味

指定したラベル位置にジャンプします。

ラベル位置の指定は、文字列変数でも可能です。

別スロットのプログラムのラベル位置にもジャンプできますが、その場合は対象のプログラムをEXEC命令で先に読み込んでください。

 

本

GOTO @A

A$="@A"

GOTO A$

GOTO 2:@B

 

ひらめき電球用途

基本的に使用しないほうがいいと思ってますが、個人的な主観です。(俗に言うスパゲッティコードの元となる)

デバッグで、作成した処理部分まで飛んでテストしたい時とかに使えるかも知れません。

 

時計使用頻度

 普通

 


右差しGOSUB

メモ意味

指定したラベル位置にジャンプします。

ラベル位置の指定は、文字列変数でも可能です。

別スロットのプログラムのラベル位置にもジャンプできますが、その場合は対象のプログラムをEXEC命令で先に読み込んでください。

GOTO命令と違い、RETURN命令でGOSUBの次の命令に戻ってきます。

 

本

GOSUB @A

A$="@A"

GOSUB A$

GOSUB 2:@B

 

ひらめき電球用途

サブルーチン呼び出しのように使用できますが、やはりスパゲッティコードの元になるため、

使用しないようにしたほうがいいのかもしれません。(個人的な主観です。)

ただし、それはGOSUBにできて、DEFでできないことがある場合に限ります。

再利用するモジュール(当たり判定を行い、結果を返すものなど)を作成する場合は利用せず、

再利用しないモジュール(1つのモジュールを短くするために作成されたモジュールなど)を作成する場合は使ってもいいかも知れません。

 

時計使用頻度

普通

 


右差しRETURN

メモ意味

直前に使用したGOSUB命令の次の命令に処理を移します。

 

本

RETURN

 

ひらめき電球用途

GOSUB命令とセットで使用します。

 

時計使用頻度

普通

 


右差しON 式 GOTO @ラベル0,@ラベル1...@ラベルn

 

メモ意味

式が0になったらラベル0にジャンプ、式が1になったらラベル1にジャンプ、式がnになったらラベルnにジャンプします。

式の結果は数値でなければいけません。

ラベル位置の指定は、普通のGOTO命令とは異なり、文字列変数での指定はできません。

 

本

ON IDX GOTO @JMP_A,@JMP_B

@JMP_A

A%=1

@JMP_B

B%=1

 

ひらめき電球用途

状態遷移などに使えそうな形ですが、GOTOはGOTOなので、あまり使用は勧めないです。

 

時計使用頻度

 


右差しON 式 GOSUB @ラベル0,@ラベル1...@ラベルn

 

メモ意味

式が0になったらラベル0にジャンプ、式が1になったらラベル1にジャンプ、式がnになったらラベルnにジャンプします。

式の結果は数値でなければいけません。

ラベル位置の指定は、普通のGOSUB命令とは異なり、文字列変数での指定はできません。

 

本

LOOP

 ON IDX GOSUB @JMP_A,@JMP_B

ENDLOOP

@JMP_A

A%=1

RETURN

@JMP_B

B%=1

RETURN

 

ひらめき電球用途

たしかDEF命令で定義した関数を使用してON-GOSUB命令のように分岐するのはやりにくかったように思うので、

状態遷移で使っていってもいいのかも知れません。(調査中)

 

時計使用頻度

普通

 



右差しON BREAK GOTO @ラベル

 

メモ意味

ユーザがプログラムを停止させようとしたときのジャンプ先を登録します。

 

本

ON BREAK GOTO @FINISH

 

@START

LOOP

 PRINT "MAINFUNC"

ENDLOOP

 

@FINISH

ON BREAK GOTO @FINISH

GOTO @START

 

ひらめき電球用途

+ボタンを効かないようにしてみたりできるかも?

※ただし、+ボタン長押しは強制停止なのでその場合は制御不可。

+ボタンで先頭から再度実行したいときに使えるかも。

 

時計使用頻度

 


右差し

メモ意味

 

本

 

ひらめき電球用途

 

時計使用頻度

 

 


右差し

メモ意味

 

本

 

ひらめき電球用途

 

時計使用頻度

 

 


右差し

メモ意味

 

本

 

ひらめき電球用途

 

時計使用頻度

 

 


右差し

メモ意味

 

本

 

ひらめき電球用途

 

時計使用頻度

 

 


右差し

メモ意味

 

本

 

ひらめき電球用途

 

時計使用頻度

 

 


右差し

メモ意味

 

本

 

ひらめき電球用途

 

時計使用頻度