【スクラッチ(Scratch)】乱数とは?使い方をわかりやすく解説|ランダムな数字を出そう

この記事きじでは、スクラッチ(Scratch)の「1~10までの乱数らんすう」ブロックの使つかい方かたを紹介しょうかいします。

乱数らんすうとは、ある範囲はんいの数値すうちから ランダムに取とり出だした数値すうちのこと。

「1~10までの乱数らんすう」ブロックは、ゲームを作つくるときなど 使つかう機会きかいがとても多おおいブロックです。

という人ひと向むけ。

かんたんなプログラムを例れいにあげながら紹介しょうかいします。

 

変数へんすうとリストが分わかる前提ぜんていで解説かいせつします。
変数へんすうやリストって何なに?という人ひとは下したの記事きじを先さきに読よんでくださいね。

また、スクラッチがはじめての人ひとは、下したの記事きじからごらんください。

スポンサーリンク

乱数(らんすう)とは

サイコロ

ゲームなどでは、「バラバラな数かずを出だしたい」ときがあります。

  • すごろくのサイコロ
  • 敵てきがどこに現あらわれるか
  • おみくじ
  • カードをシャッフル

こんなときに使つかうのが乱数らんすうです。

乱数らんすうは、ある範囲はんいからランダムに選えらばれた数字すうじのことです。

ランダムとは、きまりがなく 何なにが出でるか分わからないという意味いみです。

サイコロをふると、「1~6のどれか」が出でますが 何なにが出でるかは分わかりません。

これがランダムです。

コンピューターの中なかには、本物ほんもののサイコロはありません。

その代かわり、サイコロのようにランダムな数字すうじを作つくって使つかっています。

 

「1~10までの乱数」ブロックの使い方

では、スクラッチで乱数らんすうを使つかってみましょう。

「1~10までの乱数」ブロック

演算えんざんカテゴリにある「1~10までの乱数らんすう」ブロックを使つかいます。

1~10の部分ぶぶんに一番いちばん小ちいさな数かずと一番いちばん大おおきな数かずを入いれ、一番いちばん小ちいさな数かずから一番いちばん大おおきな数かずまでの ランダムな数値すうちを作つくり出だします。

 

例1:1から10の中でランダムな数字を言う

1から10の中でランダムな数字を言う

  1. イベントカテゴリの「このスプライトが押おされたとき」を出だす。
  2. 見みた目めカテゴリの「こんにちは!と2秒びょう言いう」を出だし、「このスプライトが押おされたとき」の下したに配置はいちする。
  3. 演算えんざんカテゴリの「1~10までの乱数らんすう」を出だし、「こんにちは!と2秒びょう言いう」のこんにちは!の部分ぶぶんに配置はいちする。
範囲はんいに指定していした数値すうちが小数しょうすうだった場合ばあい、小数しょうすうが返かえってきます。

 

例2:コスチュームをランダムに変える

コスチュームをランダムに変える

Ghostのスプライトを使つかっています。

  1. イベントカテゴリの「このスプライトが押おされたとき」を出だす。
  2. 見みた目めカテゴリの「コスチュームをghost-dにする」を出だし、「このスプライトが押おされたとき」の下したに配置はいちする。
  3. 演算えんざんカテゴリの「1~10までの乱数らんすう」を出だし、「コスチュームをghost-dにする」のghost-dの部分ぶぶんに配置はいちする。
  4. 「1~10までの乱数らんすう」を「1~4までの乱数らんすう」にする。
「コスチュームを()にする」ブロックで指定していした値あたいは、コスチューム一覧いちらんの番ばん号ごうと対応たいおうしたコスチュームになります。

 

例3:ランダムな座標へスプライトを動かす

ランダムな場所へスプライトを動かす
座標(ざひょう)とは、とある位置いちを指定していするための 数字すうじの組くみ合あわせのことです。

スクラッチでは、ステージ上じょうの位置いちを x座標ざひょう(左右)とy座標ざひょう(上下)2つの座標ざひょうを使つかって表あらわします。

座標ざひょうを乱数らんすうにすれば、ランダムな場所ばしょに スプライトを表示ひょうじさせることができます。

  1. イベントカテゴリの「このスプライトが押おされたとき」を出だす。
  2. 動うごきカテゴリの「x座標ざひょうを0にする」を出だし、「このスプライトが押おされたとき」の下したに配置はいちする。
  3. 演算えんざんカテゴリの「1~10までの乱数らんすう」を出だし、「x座標ざひょうを0にする」の0の部分ぶぶんに配置はいちする。
  4. 「1~10までの乱数らんすう」を「-240~240までの乱数らんすう」にする。

 

例4:リストの項目をランダムに参照する

リストの項目をランダムに参照する

あらかじめリストを作つくって、項目こうもくを10個こ追加ついかしています。

  1. イベントカテゴリの「このスプライトが押おされたとき」を出だす。
  2. 見みた目めカテゴリの「こんにちは!と2秒びょう言いう」を出だし、「このスプライトが押おされたとき」の下したに配置はいちする。
  3. 変数へんすうカテゴリの「リストの1番目ばんめ」を出だし、「こんにちは!と2秒びょう言いう」のこんにちは!の部分ぶぶんに配置はいちする。
  4. 演算えんざんカテゴリの「1~10までの乱数らんすう」を出だし、「リストの1番目ばんめ」の1の部分ぶぶんに配置はいちする。

「1~10までの乱数らんすう」の10の部分ぶぶんを「リストの長ながさ」ブロックにすると、リストの項目こうもく数すうに合あわせた乱数らんすうを作つくれます。

リストの項目こうもく数すうが変かわっても プログラムを直なおさなくてすみますよ。

スポンサーリンク

重複しない乱数の作り方

クイズの出題しゅつだいやビンゴの番ばん号ごうを出だすときなど、ダブらないでランダムに値あたいを1回かいずつ出だしたいときってありますよね。

リストの項目こうもくをランダムにならび変かえ、ならび変かえたリストの項目こうもくを順番じゅんばんに参照さんしょうする方法ほうほうを紹介しょうかいします。

リストの項目をランダムにならび変える

まずハタが押おされたとき、リストの項目こうもくをランダムにならび変かえます。

リストの項目をランダムにならび変える

  1. 変数へんすう「そえじ」を10(リストの項目数こうもくすう)にする。
     
  2. 2-1~2-5を9回かいくり返かえす。
    2-1.変数へんすう「らんすう」を1から「そえじ」までの乱数らんすうにする。
    2-2.変数へんすう「たいひ」をリストの「らんすう」番目ばんめにする。
    2-3.リストの「らんすう」番目ばんめをリストの「そえじ」番目ばんめで置おきかえる。
    2-4.リストの「そえじ」番目ばんめを「たいひ」で置おきかえる。
    2-5.「たいひ」を-1ずつ変かえる。
     
  3. 変数へんすう「そえじ」を1にする。

あらかじめリストを作つくって、表示ひょうじさせたい値あたいを10個こ追加ついかしています。

変数へんすう「そえじ」、「らんすう」、「たいひ」を作つくります。役割やくわりは下したのとおりです。

  • そえじ :
    (ハタが押おされたとき)リストの ならびかわっていない項目こうもくの最後さいごを表あらわす。
    (このスプライトが押おされたとき)リストの項目こうもくを順番じゅんばんに表示ひょうじするときの添字そえじ。
  • らんすう:取得しゅとくした乱数らんすうを保存ほぞん。
    乱数らんすうブロックは実行じっこうするたびに、値あたいが変かわってしまうので変数へんすうに保存ほぞんします。
  • たいひ :リストの項目こうもくを入いれかえる時ときに使つかう。

 

一体いったい何なにをしているのかというと、リストの項目こうもくを ランダムに選えらんで、リストの一番後いちばんうしろと 入いれかえています。

次つぎはランダムに選えらんだ項目こうもくと、リストの後うしろから2番目ばんめの項目こうもくを 入いれかえています。

これをくり返かえして リストの後うしろから ランダムな順番じゅんばんにならべかえ、リストの中身なかみをシャッフルします。

最後さいごに変数へんすう「そえじ」を1にして、リストの項目こうもくを 順番じゅんばんに表示ひょうじするときの 初期しょき値ちを設定せっていしておきます。

リストの項目をランダムに選んで、リストの一番後ろと入れかえ

 

リストの項目を入れかえる

2-2~2-4で、リストの項目こうもくを入いれかえています。

リストの項目こうもくを入いれかえる時ときは、退避たいひ用ようの変数へんすうを用意よういしましょう。

例れい:リストの4番目ばんめと10番目ばんめを入いれかえる場合ばあい

  1. 退避たいひ用の変数へんすうにリストの4番目ばんめの値あたいを保存ほぞんする。
  2. リストの4番目ばんめをリストの10番目ばんめの値あたいで置おきかえる。
  3. リストの10番目ばんめを退避たいひ用の変数へんすうの値あたいで置おきかえる。

リストの項目を入れかえる

 

リストの項目を順番に表示する

スプライトが押おされたときの処理しょりで、ランダムにならびかえたリストの項目こうもくを 順番じゅんばんに表示ひょうじします。

リストの項目を順番に表示する

 

実行じっこう結果けっか

【実行結果】リストの項目をランダムに表示

 

リストの長さが変わっても対応できるバージョン

下したのプログラムは、リストの長ながさがいくつでも対応たいおうできるバージョンです。

リストの項目をランダムに表示する

さっきのプログラムと 見みくらべてみてくださいね。

 

まとめ

スクラッチ(Scratch)の「1~10までの乱数らんすう」ブロックの使つかい方かたを紹介しょうかいしました。

乱数らんすうとは、ある範囲はんいの数値すうちから、ランダムに取とり出だした数値すうちのことです。

ゲームや占うらないなど乱数らんすうを使つかう機会きかいは多おおいので、ぜひマスターしましょう。

 

タイトルとURLをコピーしました