「7日間で学ぶスクラッチ応用編」の5日目にあたる今回は、「乱数」について解説していきます。この記事を読むことで、乱数を使ったプログラムを作れるようになります。
5日目の目標
- 乱数について学ぼう
- スクラッチで乱数を扱う方法を学ぼう
- 乱数を使って簡単なプログラムを作ろう
【関連記事⇒】7日間で学ぶスクラッチ応用編【1日目】
【関連記事⇒】7日間で学ぶスクラッチ応用編【2日目】
【関連記事⇒】7日間で学ぶスクラッチ応用編【3日目】
【関連記事⇒】7日間で学ぶスクラッチ応用編【4日目】
【関連記事⇒】7日間で学ぶスクラッチ応用編【5日目】(←今ココ)
【関連記事⇒】7日間で学ぶスクラッチ応用編【6日目】
【関連記事⇒】7日間で学ぶスクラッチ応用編【7日目】
プログラミングにおける「乱数」とは
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/2a831ec055ed4fee4e1d0936ea40500d-5-1024x576.jpg)
「乱数」とは「規則性のないランダムな数字」のことです。
乱数の数字が何なのかは、プログラムを実行してみないと分かりません。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/0ae7c62e50dc705df75843b104ce66cd-9-1024x576.jpg)
スクラッチではランダムな数字として扱います。
少し難しいので参考プログラムを交えて分かりやすく説明していきます。
参考プログラムを使って説明
【プログラムの説明】
・緑色の旗🚩をクリックするとプログラムが動きます。
・ロボットが1秒ごとにランダムな場所にワープします。
・赤い丸ボタンを押すとプログラムが停止します。
⇧の参考プログラムを使って、乱数について説明していきます。
まずは感覚をつかむために一度、参考プログラムを動かしてみましょう。
ロボットが1秒ごとにランダムな場所にワープするのが確認できたと思います。
このプログラムではロボットの位置を決めるx座標の値とy座標の値に乱数を使用しています。
1秒ごとに乱数の値を更新しているので、1秒ごとにロボットが毎回ランダムな座標にワープしています。
上記のプログラムのように、乱数はランダムな結果が求められるプログラムを作るときに利用されます。
ランダムな結果が求められるプログラムの一例がサイコロ、おみくじ、じゃんけんなどです。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/2839ab849d9b2c81bd86f4778e9767e3-1024x576.png)
例えば、サイコロであれば1~6のランダムな数字が出力されますし、おみくじであれば大吉や小吉などランダムな結果が出力され、じゃんけんであればグーかチョキかパーがランダムに出力されます。
このように乱数は、ランダム要素を含むプログラムを作るのが得意なのです。
![ソラタ](https://programming.soraclock.net/wp-content/uploads/2024/01/3f957081e9ae50e07bce655e77b92a02-300x300.jpg)
乱数はゲーム開発でよく利用されます。
スクラッチで「乱数」を扱う方法
![](https://programming.soraclock.net/wp-content/uploads/2024/01/40dcbe9d88c96297b642179a653642d8-9-1024x576.jpg)
このパートでは、スクラッチで「乱数」を扱う方法を解説していきます。
スクラッチでは「1から10までの乱数ブロック」を使うことで乱数を表現することができます。
この「1から10までの乱数ブロック」は1~10の間のランダムな数字であり、実行するたびに数字が決まります。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/60275ab58ebd7cd921d15fb49998721b-1024x576.png)
例えば「1から10までの乱数ブロック」は「5、10、7、3、5、2、9、6、…」のように毎回ランダムな数字が割り当てられます。
この「1から10までの乱数ブロック」は、ブロック内の数字を変更することで、発生する数字の範囲を変更することができます。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/9d831d187199270f191b3999ca596311-1024x576.png)
例えば「1から100までの乱数ブロック」とすると、1~100の間のランダムな数字になり、「-100から100までの乱数ブロック」とすると、-100~100の間のランダムな数字になります。
![ソラタ](https://programming.soraclock.net/wp-content/uploads/2024/01/3f957081e9ae50e07bce655e77b92a02-300x300.jpg)
乱数の数字が何なのかは実行するまで分かりません。
「乱数」を使った簡単なプログラムを作ろう
【プログラムの説明】
・緑色の旗🚩をクリックするとプログラムが動きます。
・ロボットが1秒ごとにランダムな場所にワープします。
・赤い丸ボタンを押すとプログラムが停止します。
このパートでは、乱数を使った簡単なプログラムの作り方を解説していきます。
今回作成するプログラムは「ロボットが1秒ごとにランダムな場所にワープするプログラム」になります。
プログラムの作成を始める前に、まずは⇧にあるプログラムを触って感覚をつかみましょう。
どのようなプログラムを作るのか理解したところで、プログラムを作る手順を解説していきます。
プログラムを作る手順
- 【手順①】ステージの背景を変える
- 【手順②】キャラクターを表示する
- 【手順③】コードエリアを編集する
【手順①】ステージの背景を変える
プログラムを作る手順の1つ目が「ステージの背景を変える」になります。
最初に以下のURLをクリックしてスクラッチの公式サイトにアクセスします。
スクラッチは誰でも無料で利用することができます。
アクセスしたら、チュートリアルの「✕閉じる」をクリックして、チュートリアルを閉じましょう。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/a402c696bf493a873c765923653c07e6-1024x576.png)
次に画面右下にある「背景を選ぶ」をクリックします。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/7ecbec8b200a97f5b85a8a31ece4115c-1024x576.png)
選ぶことができる背景の一覧が表示されるので、「Stars」をクリックします。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/d3f3f00cf1a7f0b7549c20d4afc63a1b-9-1024x576.jpg)
すると、ステージの背景が「Stars」に変わったのが確認できます。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/9b4ccaedd1bef1dacccd44245c6b928f-9-1024x576.jpg)
以上で手順①背景の変更は完了です。
【手順②】キャラクターを表示する
プログラムを作る手順の2つ目が「キャラクターを表示する」になります。
最初に、ねこのキャラクターは今回のプログラムには不要なので削除しましょう。
スプライトリストの「ゴミ箱アイコン」をクリックします。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/1d88ceb91c7659c8f850f9acae163da9-8-1024x576.jpg)
すると、ステージからねこのキャラクターがいなくなります。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/cb0bebe26f4ed333f0858ac401d32275-7-1024x576.jpg)
次に今回のプログラムで利用するロボットのキャラクターを表示させましょう。
画面右下にある「スプライトを選ぶ」をクリックします。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/fd40f9f7f385df78f8ba2cf60ad8cbff-7-1024x576.jpg)
選択できるスプライトの一覧が表示されるので、「Robot(ロボット)」をクリックします。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/c9552d0133d0f4a2a4f77168fb145539-7-1024x576.jpg)
すると、ロボットのキャラクターがステージに追加されます。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/e3d26dbc97f4538e6bb4872c4801cebd-7-1024x576.jpg)
次にスプライトリストの①「↔ x」の数値を「0」に変更し、②「↕ y」の数値を「0」に変更して、ロボットのキャラクターの位置をステージの中心にします。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/a696c9859391dafa55613beeb4d0df7c-6-1024x576.jpg)
以上で手順②キャラクターの表示は完了です。
【手順③】コードエリアを編集する
プログラムを作る手順の3つ目が「コードエリアを編集する」になります。
最初に「🚩が押されたときブロック」を、コードエリアにドラッグして置きます。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/285ad5b6b50d16ac0d0bca67c9e8953a-6-1024x576.jpg)
なお、「🚩が押されたときブロック」について詳しく知りたい方は7日間で学ぶスクラッチ応用編【4日目】をご覧ください。
次に「ずっとブロック」を、コードエリアにドラックして下画像のように先ほど置いたブロックに結合します。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/7a0dcd13f8d3251d5a149a1255ac7996-5-1024x576.jpg)
なお、「ずっとブロック」について詳しく知りたい方は7日間で学ぶスクラッチ応用編【1日目】をご覧ください。
次に「x座標を0、y座標を0に変えるブロック」を、コードエリアにドラックして下画像のように先ほど置いたブロックに結合します。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/45e645353c52af061f80af60f346190d-5-1024x576.jpg)
次に「1から10までの乱数ブロック」2つを、コードエリアにドラックして下画像のように先ほど置いた「x座標を0、y座標を0に変えるブロック」にはめ込みます。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/180801fa1135fb2f9b1d3ae25cb678f0-5-1024x576.jpg)
次に①左側の「1から10までの乱数ブロック」の数値を「-240から240」に変更し、②右側の「1から10までの乱数ブロック」の数値を「-180から180」に変更します。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/24faa776559c2a19be903453b613f526-2-1024x576.jpg)
なぜこのような数値にするかと言うと、スクラッチでは⇩画像のようにステージ上のキャラクターの位置をx(-240≦x≦240)とy(-180≦y≦180)の座標で表しているからです。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/91e7a8680d4008faa58b774259817fe6-1024x576.png)
なお、キャラクターの位置の決め方について詳しく知りたい方は7日間で学ぶスクラッチ応用編【3日目】をご覧ください。
次に「1秒待つブロック」を、コードエリアにドラックして下画像のように先ほど置いたブロックに結合します。
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/3265133c13d3b0b9fb53d46133fc3b7b-4-1024x576.jpg)
以上で手順③コードエリアの編集は完了です。そして、プログラムも完成です。
🚩をクリックしてプログラムが正常に動作することを確認しましょう。
7日間で学ぶスクラッチ応用編【5日目】のまとめ
![scratch](https://programming.soraclock.net/wp-content/uploads/2024/01/84cf2338df598a65f7626d84e74cce87-4-1024x576.jpg)
「7日間で学ぶスクラッチ応用編」の5日目では、「乱数」について解説してきました。今回の内容をまとめると以下になります。
まとめ
- 「乱数」とは規則性のないランダムな数字のこと
- スクラッチでは「1から10までの乱数ブロック」を使うことで乱数を表現することができる
- 乱数を使うことでキャラクターがワープするプログラムを作れる
「7日間で学ぶスクラッチ応用編」の6日目では、「メッセージ」について解説します。今日の内容をよく復習して6日目に臨みましょう。
以下のサイトの画像を引用しています
・スクラッチ 公式サイト