PythonやC++などほとんどのプログラミング言語にもつ「乱数」機能がスクラッチにも用意されています。この「乱数」機能を使うといかにもコンピュータが自分で考えて動いているような動きを作ることができます。特に、クムクムロボットの腕や顔、足やおしゃべりなどのコマンドを「乱数」によって動かすと、まるでクムクムロボットが自分で考えて動いているかのようなプログラムを作ることができます。

スクラッチ(Scratch)の乱数を使ってみる

スクラッチ(Scratch)の乱数コマンドは、コード-演算の中にある1から10までの乱数というブロックです。

このコマンドは、単独でプログラムに使用することができませんので、変数や何かの動きの中にはめて使います。

本当に乱数が発生するのかどうかは、このコマンドの上で何回かクリックをしてください。クリックするたびにブロックの下に吹き出しで数値が表示されるはずです。

プログラムで確かめてみる

下のプログラムを作ってみましょう。
スプライトの吹き出し部分に2秒おきに異なる数値が吹き出しで表示されるはずです。

クムクムロボットに喋らせてみる

クムクムロボットのコマンドには、数字をそのまま桁付きで喋る便利なコマンドがあります。
このコマンドは最高16桁の数まで喋ることができるので、ここではちょっと大きな数値で乱数を発生させて喋らせてみます。

同時にスプライトにも喋らせてみます。

変数と乱数を組み合わせて使う

クムクムロボットの場合、顔や腕などにそれぞれの角度を指定して自由な位置に動かすことができます。
各モータは0~180度までの回転ができるので、乱数を使って0~180までの角度で、手足をバタバタさせるプログラムを作ってみます。

このプログラムを動かすと動くたびに顔と両腕が乱数で発生した0~180までのどこかの角度に回転します。

しかし、回転したその角度が何度なのかを知ることができません。
たとえばスプライトの喋らせるコマンドを間に挟んでも…

これでは、コマンド1行ごとに異なった乱数をはっせいさせてしまっているので、モータ角度と表示している数値が異なってしまい目的の結果を得ることができません。

そのため、各角度をいったん別の場所へ一時保管する技をつかいます。

これが変数です。

変数をつくる

スクラッチのコード-変数をクリックし、新しく変数を作りましょう。

変数は、プログラマーが自由な名前を付けて保存できる魔法の一時記憶エリアです。
ここでは、顔角度、左腕角度、右腕角度という変数をつくり、そこに角度を一時記憶させ、その一時記憶させた数値を使って角度を変えてみます。

1.変数を作る

あらかじめスクラッチでは「変数」という名前の変数が用意されていますが、名前がややこしいのでこれは放っておいて新しい変数を作ります。

変数を作る ボタンをクリックし新しい変数を作りましょう。
ここでは、顔角度と入力しOKをクリックします。
●全てのスプライト用でOKです。

そうすると、変数部分に顔角度とい新しい変数ブロックができました。
同じ操作を行い、右腕角度、左腕角度を作りましょう。

変数を使ったプログラミング

では、ここでできた変数を使って以下のようなプログラムを作ります。

各変数名の前にあるチェックボックスにチェックを入れておくと、ステージ上に現在の角度が表示できます。

このように乱数と変数を組み合わせると多彩な動きをするロボットも簡単に作ることができます。