スクラッチでもよく使う「乱数」。
乱数を簡単に作れるのが、「〇から〇までの乱数」ブロックです。
こちらは、乱数とは何なのか?乱数の使い方について、詳しく徹底解説しています!
乱数とは?
乱数とは、指定した範囲の数値の中から、ランダムに取り出した数値のことです。
簡単にいえば、サイコロがまさに乱数です。
一般的なサイコロは「1~6」の数字が書かれていますよね。
サイコロを振ると、ランダムで「1~6」のいずれかの数字がでます。
プログラミングの乱数は、「1~6」の小さな範囲ではなく、特定の範囲や、大きな範囲、小さな範囲も自由に設定できます。
乱数は以下のような場合などで使われます。
- キャラクターの動きや位置をランダムに決める
- アイテムの出現場所をランダムに決める
- パスワードを自動生成
「〇から〇までの乱数」ブロック
「〇から〇までの乱数」ブロックは、指定した2つ数値の範囲でランダムな数値を返します。
初期設定では、「1から10までの乱数」となっており、「1~10」のいずれかの数値を返します。
試しに、「1から10までの乱数」ブロックをクリックしてみましょう。
すると、このように「1~10」の範囲でランダムで数値を返しています。
整数と少数で値が変わる
「〇から〇までの乱数」ブロックでは、指定範囲が「整数」と「少数」で返す値が変わります。
「1から100までの乱数」の場合は、指定した2つ数値はともに「整数」で返ってきた値も「整数」となっています。
しかし、どちらかの数値に「少数」が入っている場合は、「少数」で値が返ってきます。
もしも、指定する2つ数値が共に「整数」であっても、「少数」を返したい場合は、「1.0」のように小数点をつけて設定しましょう。
「〇から〇までの乱数」ブロックの使用例
こちらでは、「〇から〇までの乱数」ブロックの使用例を紹介します。
ランダムに泳ぐ魚
こちらは海の中で魚がランダムに動くプログラムです。
スクリプトの内容は、この通り。
まず、x座標とy座標は、乱数を使って変数に格納しています。
そして、条件分岐で、もしも変数xが0よりも大きい場合は、右向きに、それ以外なら左向きに向きを変えます。
これで、魚が右を向いたり、左を向いたりします。
そして、「〇秒でx座標を〇に、y座標を〇に変える」ブロックを使って、魚をランダムに移動させています。
移動時間については、「1~3」の乱数を設定していて、座標は変数xと変数yを入れています。
これで、海の中で魚が泳いでいるプログラムが完成しました。
こういったランダムで動くプログラムでは必ず乱数が使われます。
ただし、こちらのプログラムの魚の動きを見ると、ちょっとおかしな時がありますよね?
それは、「x座標:0」を基準に、魚の向きを決めているためです。
自然な動きをするには、もう少し手を加える必要があります。
どうやればうまくいくか、考えてみましょう。
演算ブロック一覧
「演算」ブロックには、以下の11個のブロックが用意されています。
- 真偽ブロック・・・7つ
- 値ブロック・・・11つ
ブロックの色は、黄緑色で統一されています。
演算ブロック | 動作 |
---|---|
〇+〇(足し算) 指定した2つの数値を足し算した結果を返す |
|
〇-〇(引き算) 指定した2つの数値を引き算した結果を返す |
|
〇*〇(掛け算) 指定した2つの数値をかけ算した結果を返す |
|
〇/〇(割り算) 指定した2つの数値を割り算した結果を返す |
|
〇から〇までの乱数 指定した2つ数値の範囲でランダムな数値を返す |
|
〇<〇(小なり) 左の値が右の値より小さいときにtrueを、そうでないときにfalseを返す |
|
〇=〇(イコール) 左の値と右の値が同じときにtrueを、そうでないときにfalseを返す |
|
〇>〇(大なり) 左の値が右の値より大きいにtrueを、そうでないときにfalseを返す |
|
◇かつ◇ 指定した2つの条件で両方とも満たすときにtrueを、そうでないときにfalseを返す |
|
◇または◇ 指定した2つの条件でどちらか一方を満たすときにtrueを、そうでないときにfalseを返す |
|
◇ではない 指定した条件がtrueであればfalseを、そうでないときにtrueを返す |
|
〇と〇(文字列結合) 2つの値を連結して、くっつけた値を返す |
|
〇の〇番目の文字 指定した文字列から指定した番号の文字を返す |
|
〇の長さ(文字列長さ) 指定した文字列の文字数を返す |
|
〇に〇が含まれる 指定した文字列に指定した文字列が含まれるときにtrueを、含まれていないときにfalseを返す |
|
〇を〇で割った余り 1つめの値を2つめの値で割ったときの余りを返す |
|
〇を四捨五入 指定した数値を四捨五入した値を返す |
|
〇の▢(関数) 指定した数値を指定した数学関数で演算した値を返す |