BASIC - 計算関係

BASICでの演算についてのテクニックです。

条件演算

条件を含めた演算式を作ることが出来ます。
たとえば,

A=(B=3)

と記述すると、AはBが3のときに-1,それ以外のときに0になるという意味の式になります。
括弧の中に条件式を入れると、真なら-1,偽なら0になります。
これを応用すれば、IF文の無いゲームも作ることが可能になります。

0,1,0,1,0,1.......

ある変数を、実行するたびに0,1,0,1...と変化させたいときの簡単な演算方法です。
たとえば、スイッチのON,OFFやループ中の点滅など、ゲームを作るうえではよく使います。

IF A=1 THEN A=0 ELSE A=1
A=1 XOR A
A=-(A=0)

以上のような式が考えられますが、どれも理想的な簡潔さと速度はありません。
これらよりはるかに簡単で高速な演算方法があります。それは

A=1-A

です。Aが0のときは1-0=1,Aが1のときは1-1=0です。

10 A=0
20 A=1-A
30 PRINT A
40 CALL 48381
50 GOTO 20

これを実行してみてください。キーを押すごとに1,0,1,0....と変化する様子がはっきりとわかります。

0,1,2,3,4,0,1,2,3,4,0,1,2,3,4....

今度は0,1,2,3,4,0,1,2,3,4...と繰り返す演算方法です。
難しいことは考えず、これを使いましょう。

A=(A+1) MOD 5

これを実行すると、A=0のときは1,A=1のときは2,そしてA=4のときは0になります。
なぜかというと、A+1を5で割ったあまりをAに代入しているからです。MODがあまりを求める演算子です。
つまり、A+1が4以下なら0あまりA+1なのでそのままですが、A+1が5のときはあまり0をAに代入しています。
だから、Aは0,1,2,3,4,1,0,1,2,3,4...と変化してゆくのです。

10 A=0
20 A=(A+1) MOD 5
30 PRINT A
40 CALL 48381
50 GOTO 20

これを実行してみると明らかです。キーを押すごとに1,2,3,4,0,1,2,3,4,0...と変化している様子がはっきりとわかります。

Copyright(C) tosik
E-Mail:
Weblog: Tosikの雑記