welcome: please sign in
location: etoys状態とイベントに分けて考える

状態とイベントに分けて考える

状態とは

イベントとは


状態図

状態は角の丸い長方形で表し、中に内容を書きます。

ある状態から、ある状態に変わることを矢印でつないで表します。

イベントは矢印に記入します。

開始状態は黒丸で表します。

終了状態が必要なときはこの記号を使います。


例1

スタートボタンを押すと2匹がかけっこを始め、どちらかがゴールについたらどちらが勝ったか表示して止まる。
あるものにぶつかったときは別の動作をする。

1匹ずつ考えます。

ウサギの状態を考え、どのように変わるかを矢印でつなぐと状態図ができます。


それぞれの状態の部分に対応するスクリプトを考えます。

joutai06.png

joutai07.png

joutai08.png

joutai09.png


次に矢印に対応する処理を追加していきます。

joutai07.png

ウサギの向きを変えたあと イベント記入のない矢印に対応する命令がありませんが、 このスクリプトがチクタクで動作している状態を考えると、 ぶつかったときに1回向きを変えて、 チクタクにもどっているのが分かります。

ゴールに着いたときの処理も同様にテストタイルで追加できます。

表示を行った後はチクタク状態に戻らず、 終了するため「ストップする」が必要です。

開始の処理はボタンのスクリプトに書きます。

右の矢印は「ウサギのスクリプト1」につながっているので 「ウサギのスクリプト1」をスタートする命令を加えます。

このスクリプトは1回だけ実行されます。チクタクではありません。


例2

赤ずきんは花畑によってからおばあさんの家に行く。

状態とイベントに分けて考えるとこのようになります。

「花畑に向かっている」と「おばあさんの家に向かっている」は どちらもチクタクで動作します。

それぞれの状態を1つのスクリプトで書くのが分かりやすい。

まずそのときの動作を書き、イベントに対応する処理をテストタイルに書けばよい。

スクリプト1では

を記述する。

イベント「花畑についた」が起こったときは

を行えばよい。

スクリプト2では

を記述する。

イベント「おばあさんの家についた」が起こったときは

を行えばよい。

etoys状態とイベントに分けて考える (最終更新日時 2011-05-24 13:17:12 更新者 masahiko)