Lesson 5 意思決定する人型ピクトグラム (条件式を使わない簡単版)

posted in: 開発者ブログ | 0

意思決定する人型ピクトグラム (条件式を使わない簡単版)

実行ごとに異なる処理を書いてみよう

日常生活において,人は条件によって異なった意思決定をします.

例えば,「もし,明日晴れならばピクニックに行こう」「もし,財布の中に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 です.

Lesson 6 人型ピクトグラム画家になる

 

 

本テキストの著作権は青山学院大学 社会情報学部 伊藤一成に帰属します。
© 青山学院大学 社会情報学部 伊藤一成研究室 All rights reserved.

Comments are closed.