プログラムに完全に決まった動き以外をさせる場合ほぼ必須になるのが乱数。
乱数とは無作為な数字の事です。
これを使わないと入力に対して何回やっても同一の出力しかしてくれません。
ダイスの代わりに使ったり、何パーセントでこんな動きをしたい!という分岐等も乱数を使って行います。
Scratchで使用できる乱数の出力ブロックがこちら。
これで1~6までのランダムな数字を出力。つまり、1D6と同じ動きをします。
実際に確立を使ったプログラムを組む場合はこんな感じです。
RAND_NUM変数に1~6の乱数入り、RAND_NUMが3より大きい場合。
この場合は1,2,3,4,5,6のうちRAND_NUMが4,5,6の場合のみ実行されます。
つまり3/6=1/2の確率で動作するプログラムになります。
整数を扱うのであれば書いてある通りの中から数字を出力してくれてとっても素直で便利なのです……が。
乱数で少数を出力したい場合、少し工夫をしなければなりません。
例えば1から1.5のランダムな秒数で動く物を作りたい場合です。
この1から1.5までの乱数は、1.1 1.2 1.3~と刻んでいくイメージでいるとびっくりします。
試しに1から1.5までの乱数を出力してみましょう。
少数第16位まで出されました。
これでも使えない事は無いのですが、今回は小数第1位までの数を出力する事を目標にしてみます。
その場合は整数で乱数を出して、それを10で割る事で小数点第1位までを含む乱数になります。
これで少数を乱数で出力する事ができます。
10で割るなら0.1をかけても同じ事が起きるのでは?と思う方もいらっしゃるかもしれません。
試しにやってみましょう。
なんだかすごい事になりました。
これは仕方のない挙動ですので、素直に割り算を使いましょう。
このように乱数一つとっても色々な扱い方があり、そして上手く扱う術を知る事でプログラムを思い通りのものに近づける事が出来ます。
プログラムを作る上で大切なのは必要とされる処理を導き出す為のセンスと知識なのです。