【EV3 Classroom入門】6-5 プログラムやスタック(ブロックの塊)停止
みなさん、こんにちは。さいたま市のプログラミング教室「ツクリウム」です。
こちらはEV3 Classroomの入門記事になります(後継のSPIKEプライムやスクラッチにも役立つかと思いますので参考にしてみてください)。さて、今回のプログラムはプログラム全体を止める命令や、スタック(命令ブロックがくっついたカタマリ)の処理を止める方法の解説です。
6-8 他のスタックの停止
解説:同時に行っている他の処理を停止させます。このブロックの後にブロックをつなぐことができるため、並列処理の一方を停止させるときに使います。ただ2-3や2-11のような連続してモーターを動かす命令に対しては使用できないようです。そうした場合、2-4の「移動をやめる」や、6-9の「プログラムを終了する」という処理を用います。(このあたりは仕様なのかバグなのか判然としません)。
例:左側と中央の無限ループを停止しています。
例:連続してモーターを動かす命令の場合は、このブロックでは停止できず動き続けます。この場合は左側の無限ループだけが停止します。(少しわかりにくいポイントですね。バグなのでしょうか?)
例:モーターを連続して動かす命令に対しては「移動をやめる」ブロックを使います。ただし今度は逆に左側の無限ループは停止しません。
例:両方を停止させたい場合は「移動をやめる」ブロックと「他のスタックを停止」ブロックを併用します。また6-9「プログラムを終了する」ブロックを使ってもよいでしょう。ただループブロックで囲ってしまったほうがいいのかもしれません。
6-9 (すべてのスタック/このスタック/プログラム全体)を停止する
解説:現在実行中のスタックやプログラム全体を停止させます。指定できるのは実行中の全てのスタック、またはこのスタック(グループ内のスタック)、プログラム全体です。
例:3-2なども参照。
ちなみにプログラムを停止する命令がなければずっと表示され続けます。
また待機する命令がなければ一瞬だけ表示してプログラムが終了してしまいます。
例:全てのスタックを停止した場合(i=1, J=1から始まり、i=5, J=5まで表示し、その状態で止まります。)
例:このスタックを停止した場合(i=1, J=1から始まり、i=5, J=10まで表示し、その状態で止まります。)
例:プログラムを終了する場合(i=1, J=1から始まり、i=5, J=10まで表示し、プログラムが終了するため表示が消えます。)
その他の注意点
以下のようにハットブロックによるイベント処理のオン・オフの切り替えは難しいようで、そうした場合はセンサーブロック、変数、ループブロックを組み合わせたほうがよいかもしれません。バグなのか仕様なのか分かりづらいですね・・・。
例)
プログラムがスタートすると、
変数(hensu_1)の値を1にします。
その後、ループで10回繰り返します。
実行内容は
hensu_1×2の値を表示し
1秒待ち、
hensu_1の値に1を加えます
です。
その後、プログラムを終了します。
ただし、
タイマーの値が2より大きい場合、
全てのスタックを停止します。
カラーセンサーの値が黒でる場合、
再生が終わるまで「Black」という音を再生します。
入会、または、体験会のお申込み
プログラミング教室「ツクリウム」ではスクラッチやPythonなどを学ぶ、小学生、中学生、高校生、主婦層やシニアなどの初心者向けの講座を通学形式やオンライン形式で開講しています。
お問いあわせ・ご入会・体験会のお申込みは下記のリンクからお願いいたします。
画像をクリックするとお問い合わせページにジャンプします。