2019.05.27作成

2019.06.04更新

 

変数と配列に関する命令は、以下の22の命令があります。

DIM

VAR

SWAP

INC

DEC

COPY

RINGCOPY

SORT

RSORT

PUSH

POP

UNSHIFT

SHIFT

FILL

TYPEOF

ARRAY%

ARRAY#

ARRAY$

RESIZE

INSERT

REMOVE

INSPECT

 


右差しDIM

メモ意味

変数や配列を定義できます。

後述のVARと全く同じ意味の命令になります。

式の結果が初期値になります。

配列にせずに式が省略された場合、それぞれ下記のようになります。

・%をつけると整数型ゼロに初期化

・#をつけると実数型ゼロに初期化

・$をつけると空文字列に初期化

・なにもつけないとデフォルト数値型ゼロに初期化

配列にして式が省略された場合、それぞれ下記のようになります。

・%をつけると整数配列を作成

・#をつけると実数配列を作成

・$をつけると文字列配列を作成

・なにもつけないとデフォルト数値型配列を作成

 

本

DIM A

DIM B%

DIM C#

DIM D$

DIM E=0,F=1,G=2

DIM H%=3

DIM J#=4.444

DIM K$="ご"

 

DIM L[6]

DIM M%[7,8,9,10]

DIM N#[11,12,13]

DIM P$[14,15]

 

DIM Q[]

 

DIM R[5]=[0,1,2,3,4]

DIM S%[5]=[5,6,7,8,9]

DIM T#[5]=[0.1,0.02,0.003,0.0004,0.00005]

DIM U$[5]=["マーニャ","ミネア","トルネコ","ライアン","ピサロ"]

DIM V[]=[0,1,2]

 

ひらめき電球用途

とにもかくにも変数がないとなにも始まりません。ライフだって変数、スコアだって変数です。

 

時計使用頻度

 


右差しVAR

メモ意味

変数を定義できます。

前述のDIMと全く同じ意味の命令になります。

式の結果が初期値になります。

式が省略された場合、それぞれ下記のようになります。

・%をつけると整数型ゼロに初期化

・#をつけると実数型ゼロに初期化

・$をつけると空文字列に初期化

・なにもつけないとデフォルト数値型ゼロに初期化

配列にして式が省略された場合、それぞれ下記のようになります。

・%をつけると整数配列を作成

・#をつけると実数配列を作成

・$をつけると文字列配列を作成

・なにもつけないとデフォルト数値型配列を作成

 

本

VAR A

VAR B%

VAR C#

VAR D$

VAR E=0,F=1,G=2

VAR H%=3

VAR J#=4.444

VAR K$="ご"

 

VAR L[6]

VAR M%[7,8,9,10]

VAR N#[11,12,13]

VAR P$[14,15]

 

VAR Q[]

 

VAR R[5]=[0,1,2,3,4]

VAR S%[5]=[5,6,7,8,9]

VAR T#[5]=[0.1,0.02,0.003,0.0004,0.00005]

VAR U$[5]=["マーニャ","ミネア","トルネコ","ライアン","ピサロ"]

VAR V[]=[0,1,2]

 

ひらめき電球用途

とにもかくにも変数がないとなにも始まりません。経験値だって変数、ゴールドだって変数です。

 

時計使用頻度

 


右差しSWAP

メモ意味

2つの変数に入っている値を交換します。

 

本

SWAP A,B

SWAP C[1],D[2]

 

ひらめき電球用途

たとえば、どうぐコマンドで、手動で並びかえをするときにアイテムIDを入れ替えることで並びかえたりできます。

敵と主人公のHPを交換するときにも使えるでしょう。

他にも様々な用途があります。

 

時計使用頻度

 


右差しINC

メモ意味

変数に入っている値に対して、式の結果を加算します。

式を省略した場合は、1を加算します。

※参照型命令のため、参照型は扱い注意

 

本

INC A

INC B,5

INC SCORE,100

INC SCROLL#,0.5

 

ひらめき電球用途

スコアを増やしたりする場合などに使用できます。

画面をスクロールさせる場合などにも使用できるでしょう。

他にも様々な用途があります。

 

時計使用頻度

 


右差しDEC

メモ意味

変数に入っている値に対して、式の結果を減算します。

式を省略した場合は、1を減算します。

※参照型命令のため、参照型は扱い注意

 

本

DEC A

DEC B,5

DEC HP,ATTACK

DEC MP,3

 

ひらめき電球用途

HPを減らす場合などに使用できます。

MPを減らしたりする場合にも使用できるでしょう。

他にも様々な用途があります。

 

時計使用頻度

 


右差しCOPY 

メモ意味

①配列をコピーします。

左から順番にコピー元、オフセット数、要素数です。オフセット数を省略すると0になります。要素数を省略するとコピー元要素数-オフセット数になります。

 

②文字列をコピーします。

左から順番にコピー元、オフセット数、文字数です。

オフセット数を省略すると0になります。

文字数を省略するとコピー元要素数-オフセット数になります。

 

③配列の内容を他の配列にコピーします。

COPYの返値を使用しません。

左から順番にコピー元、オフセット数、コピー先、オフセット数、コピー要素数です。

オフセットを省略すると0になります。

要素数を省略するとコピー元要素数-オフセット数になります。

1次元配列に限り、コピー先配列がコピー元配列より要素数が足りない場合に自動拡張します。

コピー先、コピー元が多次元配列だったとしても、1次元配列として扱います。

 

④DATA列で定義されたデータを順番に配列に読み込みます。

COPYの返値を使用しません。

左から順番にコピー先、コピー先オフセット、@ラベル文字列、コピーデータ数です。

コピー先オフセットを省略すると0になります。

コピーデータ数を省略した場合コピー先配列の要素数が指定されます。

DATAで定義した数がコピーデータ数より少ない場合エラーとなります。

 

⑤文字列の一部または全部を、他の文字列変数にコピーします。

左から順番にコピー先文字列変数、コピー先オフセット、コピー元文字列、コピー元オフセット、コピー文字数です。

コピー先オフセットを省略すると0になります。

コピー元オフセットを省略すると0になります。

コピー文字数を省略するとコピー元文字列の文字数からコピー元オフセットを引いた数になります。

 

本

DIM A%[5],B%[5]=[0,1,2,3,4]

A% = COPY(B%)

A% = COPY(B%,1)

A% = COPY(B%,1,2)

 

DIM A$,B$="エスターク"

A$ = COPY(B$)

A$ = COPY(B$,1)

A$ = COPY(B$,1,2)

 

DIM DST%[5],SRC%[5]=[0,1,2,3,4]

COPY DST,SRC

COPY DST,1,SRC,1,2

 

DIM DST%[5]

COPY DST,"@SRC"

COPY DST,1,"@SRC",2

@SRC

DATA 1,2,3,4,5

 

COPY A$,"12345"

COPY A$,1,"12345",1,2

 

ひらめき電球用途

データベースを作成する場合などに使用できます。

また、データベースに作成しておいた敵情報を、戦闘用の作業領域にコピーして使う場合などに使用できます。

 

時計使用頻度

 


右差しRINGCOPY

メモ意味

配列をリングバッファとみて、そこにデータをコピーします。

左から順番にコピー先配列、コピー先オフセット、コピー元配列、コピー元オフセット、コピー要素数です。

コピー先よりもコピー元の要素数が多い場合、コピー先の先頭へ折り返してデータをコピーします。

コピー先、コピー元共に2次元配列まで指定できます。2次元配列を指定した場合、マルチチャンネルのリングバッファとして扱います。

コピー先、コピー元両方に2次元配列を指定した場合、双方のチャンネル数は同じにする必要があります。

コピー先が2次元配列、コピー元が1次元配列の場合、コピー元のデータがコピー先データの全チャンネルに同じようにコピーされます。

※コピー先、コピー元が同じ配列だった場合の動作は保証できません。

コピー元オフセットを省略した場合、0になります。

コピー要素数を省略した場合、コピー元の要素数になります。

 

本

DIM DST%[5],SRC%[10]=[1,2,3,4,5,6,7,8,9,0]

RINGCOPY DST%,0,SRC%

RINGCOPY DST%,1,SRC%,2,5

 

ひらめき電球用途

不明。リングバッファを使うこと自体はよくあるが、一括でコピーする状況というのは経験上ない。有効な使い道の情報求む。

 

時計使用頻度

 


右差しSORT

メモ意味

配列を昇順で並び替えます。

左から順番に、開始位置、要素数、配列1,配列2〜配列8です。

開始位置を省略した場合、0になります。

要素数を省略した場合、配列1の要素数になります。

配列2〜配列8は省略できます。

配列1を並び替え、それに連動して配列2〜配列8が並び替えられます。

配列2〜8は文字列配列でも可能です。

 

本

DIM A[5]=[3,5,1,2,4],B(省略)

SORT A

SORT 1,3,A,B,C,D,E,F,G,H,I

 

ひらめき電球用途

どうぐをID順に並べ替えたりする場合に使用できます。

 

時計使用頻度

 


右差しRSORT

メモ意味

 配列を降順で並び替えます。

左から順番に、開始位置、要素数、配列1,配列2〜配列8です。

開始位置を省略した場合、0になります。

要素数を省略した場合、配列1の要素数になります。

配列2〜配列8は省略できます。

配列1を並び替え、それに連動して配列2〜配列8が並び替えられます。

配列2〜8は文字列配列でも可能です。

 

本

DIM A[5]=[3,5,1,2,4],B(省略)

RSORT A

RSORT 1,3,A,B,C,D,E,F,G,H,I

 

ひらめき電球用途

武器を攻撃力が高い順に並べ替えたりする場合に使用できます。

 

時計使用頻度

 


右差しPUSH

メモ意味

 配列の末尾に要素を1つだけ追加します。

左から順番に配列、式です。

※参照型命令のため、参照型は扱い注意

 

本

DIM A[5]

PUSH A,123

 

ひらめき電球用途

どうぐぶくろに、アイテムをひとつ入れたりする場合に使用できます。ただ、使いにくければ無理して使用する必要はないと考えます。

 

時計使用頻度

普通

 


右差しPOP

メモ意味

配列の末尾から要素を取り出し、要素を1つだけ減らします。

取り出した要素は返値になります。

※参照型命令のため、参照型は扱い注意

 

本

DIM A[3]=[1,2,3]

POP A

B=POP(A)

 

ひらめき電球用途

罠に引っかかったら所持してるアイテムの一番後ろを落っことすみたいな時に使えるかも?(大事なものを落としたら積むね笑い泣き)

 

時計使用頻度

普通

 


右差しUNSHIFT

メモ意味

配列の先頭に要素を1つだけ追加します。

左から順番に配列、式です。

 

本

DIM A[5]

UNSHIFT A,321

 

ひらめき電球用途

不明。いい使い方求む。

 

時計使用頻度

 


右差しSHIFT

メモ意味

配列の先頭から要素を取り出し、要素を1つだけ減らします。

 

本

DIM A[3]=[1,2,3]

SHIFT A

B=SHIFT(A)

 

ひらめき電球用途

不明。いい使い方求む。

 

時計使用頻度

 


右差しFILL

メモ意味

配列内容をすべて指定値に設定します。

左から順に配列、値、オフセット、要素数です。

オフセットと要素数で部分的な変更も可能です。

 配列の型は、整数、実数、文字列いずれでも問題ありません。

オフセットは省略できます。

要素数は省略できます。

 

本

DIM A[1000]

FILL A,0

FILL A,1,1,998

 

ひらめき電球用途

配列の初期化に使用すると便利です。FILLを使用しない場合、複数行で繰り返し文を使用することになります。

 

時計使用頻度

 


右差しTYPEOF

メモ意味

 値の型を調べます。

値の型に応じて、次のいずれかの数値が返ります。

#T_DEFAULT デフォルト型 0

#T_INT 整数型 1

#T_REAL 実数型 2

#T_STR 文字列型 3

#T_INTARRAY 整数配列 5

#T_REALARRAY 実数配列 6

#T_STRARRAY 文字列配列 7

 

本

A = TYPEOF B

 

ひらめき電球用途

デバッグで主に活用できます。

想定した型となっていない場合はSTOPと組み合わせて処理を止めるなどできます。

 

時計使用頻度

普通

 


右差しARRAY

メモ意味

配列を作成します。

 

本

DIM A%,B#,C$

A% = ARRAY%[10]

B# = ARRAY#[10,20]

C$ = ARRAY$[10,20,30]

 

ひらめき電球用途

動的に配列を作成したいとき?

使いたくなる時はほぼ無いが、とりあえず覚えておくといつか役に立つかも知れない。

 

時計使用頻度

 


右差しDIM

メモ意味

変数の定義にも同名の命令を使用しますが、こちらは別物と捉えてください。

このDIMは、配列の次元数や、各次元の要素数を調べることができます。

左から順番に、配列、次元です。

次元を省略すると、配列の次元数が返ります。

 

本

VAR A[10,20]

DIM(A)

DIM(A,1)

DIM(A,2)


ひらめき電球用途

デバッグに使えるかも。

意図した配列の次元数、要素数になっていないかどうか調べる時に役に立ちそうです。

 

時計使用頻度

 


右差しRESIZE

メモ意味

配列の要素数を変更します。

拡張部分の要素には、0または空文字列が入ります。

配列定義時に一番最初に書いた要素数のみ変更でき、それ以外は変更できません。

次元の変更はできません。


本

DIM A[5],B,[10,10]

RESIZE A,10

RESIZE B,5,5

 

ひらめき電球用途

用途不明。

 

時計使用頻度

 


右差しINSERT

メモ意味

1次元配列に要素を挿入します。

左から順番に、配列、挿入位置、要素数、初期値です。

挿入位置を0にした場合、先頭に挿入します。

要素数を省略した場合、1になります。

初期値を省略した場合、0や空文字列になります。

 

本

DIM A[5]

INSERT A,0

INSERT A,2,3,5

 

ひらめき電球用途

用途不明。

 

時計使用頻度

 


右差しREMOVE

メモ意味

1次元配列の要素を削除します。

左から順番に、配列、削除位置、要素数です。

 削除位置を0にした場合、先頭から削除します。

要素数を省略した場合、1になります。


本

DIM A[5]

REMOVE A,0

REMOVE A,2,3

 

ひらめき電球用途

用途不明。

 

時計使用頻度

 


右差しINSPECT

メモ意味

値の詳細情報を表示します。

型、値、配列の場合、要素数と、全要素の値を表示します。

文字列リテラル・文字列変数の場合は、文字列の長さも表示します。

文字列の内容が長すぎる場合は、途中で文字列が省略されます。

INSPECTの代わりに??と省略できます。

 

本

INSPECT A

?? "12345"*10

 

ひらめき電球用途

デバッグで使用できます。

意図したデータの内容となっていない場合に、中身を見ることで解決につながるかも知れません。

 

時計使用頻度

普通

 

前のページ | 第0回 | 次のページ