【スクラッチ】乱数ブロックでランダムな動きを作ろう

PR
【スクラッチ】乱数ブロックでランダムな動きの作り方

この動画は、スクラッチの「乱数」ブロックを使ってプログラミングした作品です。

数字が出現する位置や数字の濃淡など、ランダムな動作をさせるために6つの乱数を使っています。

今回は、この「乱数」ブロックの使い方や用途を紹介します。

使い方を理解して、ゲームや動画など自分のプログラムで使ってみてください。

目次

乱数はプログラミングでどのようなことに使うのか

スクラッチの乱数とは

乱数とは、「〇から〇までの数字が不規則かつ等確率で現れるように配列されたもの」です。

事象の発生に法則性(規則性)がなく、予測が不可能である動き(ランダムな動き)を作るために使います。

たとえば、サイコロの数字は1~6の整数という数字は決まっていますが、サイコロを投げた時に出る数字には法則性(規則性)がなく、予測が不可能です。「1→2→3」というような規則はありません。

乱数は、プログラミングで次のような動きを決めるために使われます。

  • 表示位置(x座標、y座標)
  • サイコロの出目
  • じゃんけんで出す手
  • おみくじやクイズの番号

スクラッチの乱数ブロックの使い方

乱数を発生させるためには、「演算」の【()から()までの乱数】ブロックを使います。

他のブロックと組み合わせることによって、作りたい動きをプログラミングします。

スクラッチの乱数ブロック

使い方は簡単。「()から()」の引数には数字を入れて範囲を指定するだけです。

プログラムを実行する度に、指定範囲から1つの数字が選ばれます。

乱数ブロックで「整数」を発生させる

スクラッチの乱数:使い方(整数)

乱数ブロックを利用して「整数」を発生させたい場合は、2つの引数に整数を指定しましょう。

マイナス値も指定できます。

スプライトの表示位置(x座標、y座標)やサイコロの出目などで乱数を利用する場合は、整数を利用しましょう。

乱数ブロックで「小数」を発生させる

スクラッチの乱数:使い方(少数)

小数の計算問題を作成する場合など、乱数で小数を生成したい場合もありますよね。

乱数ブロックを利用して「小数」を発生させたい場合は、引数のどちらか一方に小数を指定しましょう。

引数がともに整数の場合でも、1.0のように小数点以下をつけて指定すると小数が発生します。

整数と同じように、マイナス値も指定できます。

小数を指定した場合、実際に発生する数字は小数点以下16桁までです。

スクラッチの乱数:使い方(小数点以下16桁)

しかし、プログラム実行時、変数などに代入した場合は小数点以下6桁に丸まり、スクリプト内では小数点以下2桁に丸まります。

スクラッチの乱数:使い方(少数の丸め表示)

乱数ブロックの使い方と特徴が分かったところで、作品を作っていきましょう。

乱数を使って作品を作る

乱数は発生させるだけでは意味がありません。

乱数ブロックが、どのように他のブロックと組み合わされるのか見ていきます。

表示位置(座標)を決める

乱数を使って、スプライトの表示位置(座標)を決めましょう。

サンプルでは「Cat Flying」というスプライトを使いましたが、好きなものを選んでください。

スクラッチの乱数:ランダム移動(スプライトの選択)

スプライトの表示位置をランダムに決めるためには、x座標とy座標をランダムに決める必要があります。
乱数ブロックを2つ使い、「x座標を()、y座標を()にする」ブロックと組み合わせましょう。

スクラッチのステージは、x座標が-240~240、y座標が-180~180と範囲が決まっています。

乱数ブロックには、このステージの範囲を指定。

スクラッチの乱数:ランダム移動

実行すると、次の画像のようにステージのどこかに表示させることができます。

計算式を作る

スクラッチの乱数:計算(サンプル)

乱数を使って、計算式を作りましょう。

サンプルでは「Cat」というスプライトを使いましたが、好きなものを選んでください。

スクラッチの乱数:計算(スプライトの選択)

「スプライトが『〇 + 〇 = ?』という問題を出す → ユーザーが解答する」を繰り返すプログラムを作ります。

スクラッチの乱数:計算ブロック

乱数ブロックを使うことで、次の画像のように、毎回違う問題を出題することができます。乱数の範囲によって計算の難易度が変わりますので、調整してみてください。

ユーザーの解答と正解を比較するために変数を使いましたが、乱数は、変数と合わせて利用されることも多いです。

「”変数”って何?」という方は、「【スクラッチでプログラミング】変数機能をマスター!」もチェックしてください。

サイコロの出目を決める

乱数を使って、サイコロの出目を決めましょう。

まずは、サイコロのコスチュームを作ります。

スクラッチにはサイコロのコスチュームがありません。サンプルでサイコロ画像を準備しましたので、ダウンロードして解凍してください。

スプライトの「コスチューム」タブを選び、左下の「ネコ」マーク→「コスチュームをアップロード」を押して、解凍したファイルをすべてアップロードします。

スクラッチの乱数:ランダムダイス(コスチューム)

※アップロードした後、1~6の順に並び替えて、不要なコスチュームがあれば削除します。

サイコロの目は1~6ですので、乱数ブロックの範囲を(1)から(6)の整数で指定してください。

スクラッチの乱数:ランダムダイス(コード)

コスチュームの名前と数字が対応しているので、これだけでサイコロの目が実行するたびに変化します。

じゃんけんで出す手を決める

乱数を使って、じゃんけんで出す手を決めましょう。

決まった手を表現するために、結果に合わせて次の2つのアクションを行います。

  • コスチュームを変更する
  • 言葉で表示する(「言う」ブロック)

最初に、「グー」「チョキ」「パー」3つのコスチュームの準備から。

「Bat」というスプライトを選択します。

スクラッチの乱数:じゃんけん(スプライト選択)

「コスチューム」タブを選択し、コスチュームに「グー」「チョキ」「パー」と名前を付けます。見やすいように並べ替え、不要なコスチュームは削除しておきましょう。

スクラッチの乱数:じゃんけん(コスチューム)

次に、サイコロと同じように乱数を発生させてコスチュームを変更します。しかし、乱数は数字をランダムに発生させるだけなので、うまくコスチュームが切り替わりません。じゃんけんのように数字以外を扱う場合は、数字と項目(じゃんけんで出す手)を対応させるために次のようなリストを作る必要があります。

数字項目(じゃんけんで出す手)
1グー
2チョキ
3パー
じゃんけんリスト

まずは、じゃんけんリストを作りましょう。

スクラッチの乱数:じゃんけん(リストの作成)

じゃんけんリストに、「グー」「チョキ」「パー」を追加。

スクラッチの乱数:じゃんけん(リスト作成コード)

これで、数字とじゃんけんで出す手の対応表ができました。

リストについて詳しく知りたい方は、「【スクラッチでプログラミング】リストを使って配列を理解する」もチェックしてください。

最後に、乱数ブロックの範囲に(1)から(3)の整数を指定して「じゃんけんで出す手」を決めます。

今回は2つのアクションを行いますので、「じゃんけんで出す手」変数をつくります。

スクラッチの乱数:じゃんけん(変数の作成)

変数に乱数の結果(「グー」「チョキ」「パー」)を入れることで、2つのアクション「コスチュームの変更」「言葉の表示」で同じ値を利用します。

スクラッチの乱数:じゃんけん(コード)

実行すると、以下の画像のように結果が変わります。

乱数の結果を使って複数の動作を作る場合は、今回のように変数を活用してください。

「”変数”って何?」という方は、「【スクラッチでプログラミング】変数機能をマスター!」もチェックしてください。

おみくじやクイズの出る番号を決める

乱数を使って、おみくじやクイズの出る番号を決めましょう。

スプライトは好きなものを選んでください。早速、ブロックを並べていきます。

じゃんけんの出し方を決めるように、おみくじやクイズも数字ではありません。じゃんけんと同じように、リストと組み合わせて使います。

スクラッチの乱数:おみくじ(リスト作成コード)

じゃんけんとの違いは、リストの数が決まっていないこと。

リストにおみくじやクイズを追加するたびに乱数の範囲を変更するのは面倒なので、リストの項目数を使って範囲を指定します。

乱数ブロックの範囲には、(1)から(リストの項目数)と指定するとメンテナンス性が良くなります。

スクラッチの乱数:おみくじ(コード)

実行すると、次の画像のようにおみくじが表示されます。

スクラッチで乱数をテーマに作品を作る

目次