意思決定する人型ピクトグラム (条件式を使わない簡単版)
実行ごとに異なる処理を書いてみよう
日常生活において,人は条件によって異なった意思決定をします.
例えば,「もし,明日晴れならばピクニックに行こう」「もし,財布の中に5000円以上あるなら買おう」などです.つまり条件によって実行する命令を変えたいときです.その場合は,IF命令を使います.
IF命令の様式と処理は以下の通りです.END命令とセットで用います.実際には,exp1は実数値以外にも,条件式と呼ばれる式でもいいのですが,今回は条件式は省きます.
命令の様式 | 処理 |
---|---|
IF exp1 | その実数値の確率で対応するELSEIFまたはELSEまたは ENDまでの命令を実行する. |
END | 条件文,または繰返し,または定義の終了. |
例として,以下のコードを実行すると左手を挙げた後、1/2 の確率で手を振ります。
RW LUA -140 1 // 左手を挙げる IF 0.5 // 50%の確率で // 左手を振る RW LLA -60 0.3 RW LLA 60 0.3 END
IF
命令は,複数の条件を列挙したり,条件を満たさないときの処理を同時に記述できます.新たに
ELSEIF
命令,ELSE
命令を紹介します.
命令の様式 | 処理 |
---|---|
IF exp1 | もし 条件式exp1が真ならば対応するENDまでの命令を実行する. |
ELSEIF exp2 |
もし対応する先述のIFまたはELSEIFの条件が全て満たされなくて,かつexp2の実数値の確率で対応するELSEIFまたはELSEまたはENDの直前までの命令を実行する. |
ELSE |
もし対応する先述のIFまたはELSEIFの条件が全て満たされない場合,対応するENDまでの命令を実行する. |
END | 条件文,または繰返し,または定義の終了. |
例として,人型ピクトグラムが16 拍子の踊りをするプログラムを示します。各拍それぞれで,50%の確率で「左脚を上げ下げ」15%=(1-0.5)×0.3の確率で「右腕を上げ下げ」,35%=(1-0.5)×(1-0.3)の確率で「左腕を上げ下げ」します.
REPEAT 16 IF 0.5 RW LUL 90 0.2 // 左脚を上げ下げする RW LUL -90 0.2 ELSEIF 0.3 RW RUA 90 0.2 // 右腕を上げ下げする RW RUA -90 0.2 ELSE // その他の場合は RW LUA 90 0.2 // 左腕を上げ下げする RW LUA -90 0.2 END END
挑戦状
5回目の挑戦状です。挑戦状は、あなたがやりたいと思うところからやってください。チャレンジ1から順に取り組む必要はありません。また、全てのチャレンジに取り組む必要もありません。あなたがやりたいチャレンジに取り組んでください。
チャレンジ1 腕を上げ下げさせよう
次の (a) から (c) の条件を満たすプログラムを作成してみよう。
(a) 5 分の 4 の確率で 1 秒かけて左腕を 120 度時計回りに回転する。
(b) 10 分の 3 の確率で 1 秒かけて右腕を 120 度反時計回りに回転する。
(c) (a) の動作と (b) の動作は同時に行われる。 左腕を上げる行為と、右腕を上げる行為はそれぞれ別々に判断される。
チャレンジ2 ダンサー
30 拍からなるダンスをします。1 拍は 0.6 秒とします。最初は 1 拍目、最後は 30 拍目です。各拍それぞれで,次に示す(1)から(4)のいずれの動作するか決定します.各動作の選択される確率は,(1)は0.4の確率,(2)は0.3の確率,(3)は0.2の確率,(4)は0.1の確率です..
(1) 最初の 0.3 秒で左腕を -120 度、 右腕を 120 度それぞれ同時に回転し、その後 0.3 秒で左腕を 120 度、右腕を -120 度それぞれ同時に 回転します。
(2) 最初の 0.3 秒で左腕を -120 度回転し、 その後 0.3 秒で左腕を 120 度回転します。
(3) 最初の 0.3 秒で右腕を 120 度回転し、 その後 0.3 秒で右腕を 120 度回転します。
(4) 最初の 0.3 秒で左足を -10 度回転し、 その後 0.3 秒で左足を 10 度回転します。
チャレンジ3 オリジナルダンサー
条件分岐(IF)と繰り返しを使ったオリジナル作品を作ってみよう。
次はレッスン6 です.
本テキストの著作権は青山学院大学 社会情報学部 伊藤一成に帰属します。
© 青山学院大学 社会情報学部 伊藤一成研究室 All rights reserved.