標準コマンドサンプル

LEDの点滅回数をスプライトに数えさせてみる

 

スクラッチの繰り返し

スクラッチである動きを繰り返す命令として[制御]の中に[10回繰り返す]と[ずっと]の2つのブロックがあります。
このブロックは、このブロックで囲った動きを、自分で指定した回数またはずっと繰り返す命令です。

10回繰り返すブロックは、白い部分の10を好きな数字に変えることで自分の好きな回数動作を繰り返し、その回数の繰り返しが終わるとこのブロックから抜けてブロックの下の命令を動かしに行きます。

しかし、ずっとのブロックは、繰り返しをずっと行って終わることがないため、このブロックの下には命令をつなげることができません。つまり永遠にこの命令を繰り返します。

左側の10回繰り返すプログラムは、クムクムロボットの胸のLEDを赤く1秒ごとに点灯・消灯を繰り返し、10回終わった後「こんにちは」とクムクムロボットが喋ってプログラムが終了します。

右のプログラムは、同じように1秒ごとに点灯と消灯を繰り返しますが、ずっとその動きを行い終わることがありません。
つまりこのブロックからはずれることがないため、「こんにちは」としゃべるブロックはずっとのブロックの下に接続して配置することができていません。

よくみると、2つの繰り返しブロックの下部分が接続できるでっぱりが左側の10回繰り返しにはありますが、ずっとにはありません。
つまり、このブロックの下には命令が続きますよ!という形と、この下には命令が続けられませんよ!という形になっています。

何回目なのかわからない

ところが、スクラッチの繰り返しブロックは、いったい何回目なのかがこのままではわかりません。
C言語やBASICなどほかのプログラミング言語では、繰り返す回数を自分であらかじめ指定します。そして、回数を記憶してくれる部分も指定できるため、そこを監視していれば今何回目かはプログラム上で把握することができます。

しかし、スクラッチでは回数を記憶しておいてくれる場所がどこにもないため、名回繰り返してくれ!とブロックを使うことができますが、今何回目なのだか把握することができないのです。

回数を把握するための記憶場所(変数)を使う

こんな場合、スクラッチでは変数を作って自分で回数を数えます。
C言語もBASICも他のプログラミング言語も、自分で記憶場所を作って回数を数えるのでスクラッチと考え方は同じなのですが、スクラッチの便利な機能で、あらかじめ回数をキーボードで入力できてしまうためプログラマーには少し違和感があります。

変数「回数」の作り方    

完成したプログラム

2つのプログラムを作ってみました。
左側はスクラッチの機能を使って便利に回数をカウントアップしています。
右は一般的なプログラマーが行う、自分自身に1を足してカウントアップをする方法です。
将来プログラマーを目指す方は、右の方法を知っておくべきです。

<<プログラムダウンロード>>

コメント

タイトルとURLをコピーしました