welcome: please sign in
location: "etoysカウンタを使った場合分け"の差分
28と31のリビジョン間の差分 (その間の編集: 3回)
2011-07-06 05:51:16時点のリビジョン28
サイズ: 3507
編集者: masahiko
コメント:
2011-07-07 03:03:11時点のリビジョン31
サイズ: 3564
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
#acl All:
行 76: 行 75:
あみを回す処理を36回行ったら1秒休むスクリプトす。
 . aが0
 . bが36
 . 処理1は「なし」
 . 処理2は「あみを回す
 . 処理3は「あみのカウント←-8

この
スクリプトと上の図との対応を示します。
 . a は 9
 . b は 27
 . 処理1は「なにもない
 . 処理2は「進める
 . 処理3は「回す
行 88: 行 88:
 . {{attachment:counter11.png}}

4つに分けるには、比較が3回必要です。

カウンタを使った場合分け

止まったり、動いたり、別の動きをしたりなど、 何種類かの動きを決まった順に繰り返すスクリプトを作ります。


変数を用意する

回数を数えるために、変数を用意します。

  • トンボのビューアを開き、変数を作ります。
  • counter01.png

  • カウンタという名前で作成しました。
  • タイプはNumberです。値が数値になっていればよい。
  • counter02.png


回数を数える

このようなスクリプトを考えます。

  • counter03.png

実行すると、 チクタク一回ごとにカウンタの値が1ずつ順に増えていきます。

  • baaiwake12.png

通常では1秒間に8回チクタクで実行されるので、 最初にカウンタの値が1になっていたとすると、 10秒後には81になります。

10秒経ったらもとの動きにもどすために、 カウンタの値を1に戻す命令を追加しておきます。 (秒数は各自、調整してください)

  • counter04.png

カウンタの値はこのように変化します。

  • counter05.png

カウンタの値を使って場合わけをしてみましょう。


止まったり動いたり

始めの1秒は止まっていて、 その後は動く場合の書き方です。

カウンタの値は1から始まり、 1秒後に9になります。

  • counter06.png

境目の値の9と比較するテストを書きます。

  • counter07.png

はいの後ろに、カウンタの値が1~8のときの処理を書きます。

  • 動かないのなら、何も書かなくてよい。

いいえの後ろに、カウンタの値が9以上のときの処理を書きます。

  • 動きを書きます。


2つの場合に分ける

値aと比較して2つの処理に分ける場合

  • counter08.png

比較のテストを行い、はい、いいえのところにそれぞれの処理を書けばよい。

  • baaiwake09.png


3つの場合に分ける

3つに分ける場合

  • counter09.png

値の小さい方から順に比較します。

  • まずaと比較し、小さければ処理1を行います。
  • そうでない(aより大きい)ときは、bと比較して処理2または処理3を行います。
  • baaiwake06.png

処理2が行われるのは、aより小さいが「いいえ」で、bより小さいが「はい」のときです。

1回の比較に1つのテストタイルを使って書きます。 1番目のテストの「いいえ」の部分に2つ目のテストタイルが入った構造になります。

  • counter10.png

このスクリプトと上の図との対応を示します。

  • a は 9
  • b は 27
  • 処理1は「なにもしない」
  • 処理2は「進める」
  • 処理3は「回す」


4つ以上の場合に分ける

場合が4つ以上になっても、小さい順に比較するのが分かりやすい。

3つに分けるときの書き方で、 最後の「いいえ」の部分にテストタイルを追加します。

  • counter11.png

4つに分けるには、比較が3回必要です。

etoysカウンタを使った場合分け (最終更新日時 2011-07-07 03:03:11 更新者 masahiko)