welcome: please sign in
location: "etoys処理の順番を考える"の差分
5と6のリビジョン間の差分
2012-06-06 02:40:27時点のリビジョン5
サイズ: 3553
編集者: masahiko
コメント:
2012-06-06 02:41:28時点のリビジョン6
サイズ: 3577
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 71: 行 71:
間違いの例 ==== 間違い ====
行 81: 行 81:
正解1 ==== 正解1 ====
行 89: 行 89:
正解2 ==== 正解2 ====

処理の順番を考える

スクリプト内で命令をどの順にならべたらよいのか考えましょう。


スクリプト内では順番に実行される

スクリプト内にいくつかの命令を並べたときは 上から順に実行されます。

3つの命令を並べた例です。

  • junban4.png

次の3つが順に実行されます。

  1. ウサギを進める5
  2. 入れ物のカーソル位置 ← 2
  3. ウサギの画像 ← 入れ物のカーソル位置の画像

!を押して1回だけ実行してみると分かります。

チクタクでは分かりにくいかもしれません。


1つのスクリプトで考える

つぎの2つのスクリプトを考えます。

  • junban1.png

  • junban2.png

1回だけ実行したり、どちらかだけをチクタクにするのはよいのですが

2つともチクタクにすると、全体としての動作が分かりにくくなってしまいます。

2つとも実行したいのであれば 1つのスクリプトにまとめたほうが分かりやすい。

  • junban3.png

チクタクにするスクリプトは 1つのオブジェクトにたいして1つだけにして考えましょう。


並べる順が重要

正しい順に並べないとうまく動作しないものもあります。

最初の例です。

  • junban4.png

1回だけ実行するとして考えると

  • 入れ物のカーソル位置 ← 2

の後で

  • ウサギの画像 ← 入れ物のカーソル位置の画像

を行わないとだめなことがわかります。

判定により画像を変える場合も 同じ順番に並べればよい。

  • junban5.png

ウサギが

  • 赤色のところに来たときはカーソル位置1の画像に
  • そうでないときはカーソル位置2の画像になります。


複数の判定が必要なとき

複数の判定が必要なときはさらに注意が必要です。

ウサギが

  • 黄色のところに来たときはカーソル位置3の画像に
  • そうでないときはカーソル位置2の画像

にするときも、同様に書けます。

  • junban6.png

問題

ウサギが

  • 赤色のところに来たときはカーソル位置1の画像に
  • 黄色のところに来たときはカーソル位置3の画像に
  • そうでないときはカーソル位置2の画像に

するにはどうしたらよいでしょうか。

間違い

  • junban7.png

上の2つのスクリプトのテストの部分を並べたものです。

  • 赤色のテストをした後、黄色のテストをしています。

ウサギが赤色のところにいるときの処理はつぎのようになります。

  1. ウサギを進める
  2. 赤色のテストが成り立つので、カーソル位置は1になる
  3. 黄色のテストが成り立たないので、カーソル位置は2になる
  4. カーソル位置2の画像が表示される

正解1

赤色と重なっていないときだけ 黄色のテストを行えばよいので、

赤色のテストのいいえの部分に黄色のテストを入れます。

  • junban8.png

正解2

このような方法もあります。

  • junban9.png

etoys処理の順番を考える (最終更新日時 2012-06-06 02:42:06 更新者 masahiko)