【スクラッチ(Scratch)】乱数を使ってみよう!

この記事では、スクラッチ(Scratch)「1~10までの乱数」ブロックの使い方を紹介します。

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

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

  • スクラッチの乱数ブロックの使い方を知りたい
  • ダブらない乱数の作り方を知りたい

という方向け。

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

 

変数とリストが分かる前提で解説します。
変数やリストって何?という方は下の記事を先にお読みください。

 

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

 

スポンサーリンク

乱数とは

サイコロ

乱数とは、ある範囲の数値から、ランダムに取り出した数値のこと

ランダムは、きまりがなくデタラメということです。

 

PRジュニア・プログラミング検定合格を目指そう!個別指導塾ラシク プログラミング講座

「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:ランダムな場所へスプライトを動かす

ランダムな場所へスプライトを動かす

  1. イベントカテゴリの「このスプライトが押されたとき」を出す。
  2. 動きカテゴリの「x座標を0にする」を出し、
    「このスプライトが押されたとき」の下に配置する。
  3. 演算カテゴリの「1~10までの乱数」を出し、
    「x座標を0にする」の0の部分に配置する。
  4. 「1~10までの乱数」「-240~240までの乱数」にする。

 

x座標は左右の位置を示しています。
x座標を乱数にすれば、横の位置だけランダムな場所にスプライトを動かすことができます。

 

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

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

リストを作って、項目を10個追加します。

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

 

「1~10までの乱数」の10の部分を「リストの長さ」ブロックにすると、
リストの項目数に合わせた乱数を作ることができます。

リストの項目数によってプログラムを変えなくてすみますね。

 

PR自宅にいながら本格的プログラミング学習|Tech Kids Online Coaching

重複しない乱数の作り方

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

リストの項目をランダムにならび変え、
ならび変えたリストの項目を順番に参照する方法を紹介します。

 

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

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

ハタが押されたときの処理で、リストの項目をランダムにならび変えています。

リストを作って、表示させたい値を10個追加しましょう。

変数「そえじ」「らんすう」「たいひ」を作ります。
変数の役割は下のとおりです。

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

 

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

 

何をしているのかというと、

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

次はランダムに選んだ項目と、リストの後ろから2番目の項目を入れかえています。

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

最後に変数「そえじ」を1にして、
リストの項目を順番に表示するときの初期値を設定しておきます。

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

 

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

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

リストの項目を入れかえる時は、退避(たいひ)用の変数を用意しましょう。

 

例:リストの4番目と10番目を入れかえる場合

  1. 退避用の変数にリストの4番目の値を保存する。
  2. リストの4番目をリストの10番目の値で置きかえる。
  3. リストの10番目を退避用の変数の値で置きかえる。

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

 

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

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

このスプライトが押されたときの処理で、リストの項目を順番に表示しています。

 

実行結果

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

 

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

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

こちらのプログラムはリストの長さがいくつでも対応できるバージョンです。

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

 

まとめ

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

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

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

 

 

 

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