ピクトグラミングでは,条件分岐命令をサポートしていますが,一般的な構造化プログラミング言語と同様の形式で,変数,(必要に応じて)関数,条件式の理解が必要であるため,比較的初学者には敷居が高いです.
例えば,ピクトグラミングの日本語命令で,50%の確率で手を振るようなプログラムを記述すると以下のようになります.
回転待ち 左肩 ー120 1 もし 「乱数(1,6) >= 4」 回転待ち 左肘 ー90 0.3 回転待ち 左肘 90 0.3 終わり
IF(もし), ELSEIF(他でもし)の引数に条件式を記述した場合はこれまで通りですが,実数値を直接記述したときは,その確率で実行する様に仕様を変更しました.
命令の様式 | 処理 |
---|---|
IF exp1 もし exp1 |
もし exp1が実数値なら,その実数値の確率で対応するELSEIFまたはELSEまたは ENDまでの命令を実行する.exp1が条件式なら,条件が真であれば対応するELSEIFまたはELSEまたは ENDまでの命令を実行する. |
ELSEIF exp2 他でもし exp2 |
もし対応する先述のIFまたはELSEIFの条件が全て満たされなくて,かつexp2が実数値なら,その実数値の確率で対応するELSEIFまたはELSEまたはENDの直前までの命令を実行する.exp2が条件式なら,条件が<真ならば対応するELSEIFまたはELSEまたはENDの直前までの命令を実行する. |
ELSE 他 |
もし対応する先述のIFまたはELSEIFの条件が全て満たされない場合,対応するENDまでの命令を実行する. |
例えば,上のプログラムは以下のように書き換えることができます.
回転待ち 左肩 ー120 1 もし 0.5 回転待ち 左肘 ー90 0.3 回転待ち 左肘 90 0.3 終わり
例えば下のプログラムは,左肘,右肘,右膝のいずれかをそれぞれ,40%, 42% ( (1-0.4)*0.7)) ,18%( (1-0.4)*(1-0.7)) の確率で動かします.
回転 左肩 ー120 1 回転待ち 右肩 ー120 1 もし 0.4 回転待ち 左肘 ー90 0.3 回転待ち 左肘 90 0.3 他でもし 0.7 回転待ち 右肘 ー90 0.3 回転待ち 右肘 90 0.3 他 回転待ち 右膝 ー90 0.3 回転待ち 右膝 90 0.3 終わり