T.TのHPIndex > プロロボの分岐命令の謎仕様について
プロロボの分岐命令の謎仕様について

 バグか仕様かわかりませんが、プロロボの分岐命令には変な仕様があります。以下ののコードをご確認ください。実行してみるとよくわかります。

例1
START
	SENSOR TOUCH_RIGHT,"@NEXT","@ME"
	BACK HIGH,100
FINISH

例2
START
	STRAIGHT HIGH,100
	SENSOR TOUCH_RIGHT,"@NEXT","@ME"
	BACK HIGH,100
FINISH

例3
START
	SENSOR TOUCH_RIGHT,"@NEXT","@ME"
	BACK HIGH,100
	JUMP "@TOP"

 例1では右センサが押されるまで@MEすなわち、SENSOR命令に戻るために、プロロボは止まり、右センサが押されると後進します。
 ところが、例2では、1秒前進した後も、プロロボは右センサが押されるまで前進します。
 さらに例3でははじめは例1のようになりますが、一度右センサが押されると、延々と後進します。
 上記はPrbScriptでの例ですが、公式エディタ(新Ver/旧Ver問わず)でもこのようなプログラムを作製し、 転送、プロロボを上記の通り動作させられます。
 これは、分岐命令から分岐命令にジャンプすると、直前の動作命令が実行される。という仕様だと推測されます。 また私の調査によれば、直前の動作命令の実行中はセンサ入力を受け付けません。
 また、回数繰り返しを抜けた直後に分岐命令を配置し、分岐命令から分岐命令にジャンプすると、直前の動作命令、すなわち、 繰り返しのブロックの最後の動作命令が実行されます。これは少し意味不明です。 しかし、この場合、繰り返し終了が無秩序に呼ばれるような問題は起こりません。
 例1のように直前に動作命令がなかった場合は停止します。分岐命令で分岐を静止して待ちたい場合は、以下のように書くと良いでしょう。

START
	STRAIGHT HIGH,100
	BRAKE HIGH,1
	SENSOR TOUCH_RIGHT,"@NEXT","@ME"
	BACK HIGH,100
FINISH

 この仕様を見つけて、プロロボにはいろいろな不思議か詰まっていると思いました。普通の感覚だと、そういう仕様にならないと思うんですけど。。。 君もプロロボ探求学の道へ進もう!







inserted by FC2 system