このページではスクラッチの乱数について説明をしていきます。基本的な内容になりますが、変数と並んでつまずき易い部分でありますのでしっかりと理解して使えるようにしましょう。
目次
スクラッチで乱数を使う意味とは?
スクラッチでプログラミングを行う場合に、乱数を使う事はゲームを面白くするためには必須の要素になります。
乱数とは、指定した間にランダムな数値を発生させるものです。
例えば、「1~10までの乱数」というと1から10までのどれかの数値を発生させるという事になります。
乱数の使い方には、色々あります。例えば、スプライトの位置をランダムにしてどこから出て来るかわからないようにするです。
X座標を-200から200までの乱数としてY座標を150とした場合は、スプライトのY座標は150と決まっているけど左右はどの場所かわかりません。
このようにゲームに乱数を使う事でゲームを面白くしていきます。
スクラッチで乱数を使う方法
スクラッチで乱数を使う方法を説明します。
演習から「1から10まで乱数」を持ってきます。このブロックを使う事で乱数を発生させる事が出来ます。
このブロックをプログラムエリアに持って来てクリックする事で1~10までのランダムな数字が発生します。
1から10の数字を変える事で発生させる数字を変える事が出来ます。
例えば、数字を「-3から3」としてみましょう。-3から3までのどれかの数字が発生します。
スクラッチの乱数を使ってみよう
乱数の意味と使い方を説明しましたが、実際に使ってみる事で理解を深めていきたいと思います。
じゃんけんを作ろう
簡単なじゃんけんゲームを作ります。
「グー」「チョキ」「パー」をランダムに出すという簡単なものです。
まず、変数「rand」を作ります。(変数に関してはこちらを参照下さい)
以下のようなプログラムを作ってみます。
・ハタが押された時
・「じゃんけーん」と2秒言う。
・変数「rand」に「0から2までの乱数」をセットします。
・変数「rand」が「0」の場合は、「グー」という。
・変数「rand」が「1」の場合は、「チョキ」という。
・変数「rand」が「2」の場合は、「パー」という。
プログラムは以下のようになります。
「グー」「チョキ」「パー」のどれが出るかは、プログラムをして人もわかりません。
サイコロを作ろう
もう少し乱数を使う例を説明していきます。
サイコロを作ってみます。
サイコロは、ご存じの通り1から6までのランダムな数字が出るものです。
サイコロのスプライトはスクラッチにはありませんので自分で作ってみます。
スプライトの描くを起動します。
サイコロを描くのは簡単です。
まずは、黒色で正方形を描きます。
真ん中に赤丸を1つ描きます。これでサイコロの「1」は完成です。
フォームの名前を「1」にしましょう。
これで乱数で値が「1」の場合は、サイコロの「1」を呼び出す事が出来ます。
この画像を複写して2から6までを作りましょう。
サイコロのスプライト出来たら後は簡単です。
以下のようにしてみましょう。
- ハタが押された時
- コスチュームを「1から6の乱数にする」
実行してみると色々なサイコロの目が出る事がわかります。
今回は、「サイコロの目=フォーム名」というようにしましたが、乱数の値が「1」ならサイコロの1の目を表示するというような書き方も出来ます。
スクラッチの乱数に少数点は使えるか?
乱数を使う場合に指定する範囲は基本的に正と負の整数となります。
しかし、やってみるとわかりますが、実際には少数点のある数値を入力してもエラーにはなりません。
例えば、「1.1 から1.9」と指定をすると「1.1 から1.9」の間の数値が取得出来ますが、「1.41234561」というような少数点の桁数が多い数値となります。
ほしい数値は、1.1、1.2、1.3、1.4・・・・・の数値だったけど必要な数値ではなかったりします。
これに関しては、求めた値から算出する事が出来ます。
やり方は以下になります。
・1.1から1.9の乱数を変数「rand」にする
・変数「rand」に10を掛ける
・変数「rand」を四捨五入する
・変数「rand」を10で割る
これは、あくまで1つの事例なりますのでケースによってアレンジして使ってみて下さい。
スクラッチの乱数で出る値の確率は?
乱数を使う場合に注意しないといけないのが、出る値の確率です。
例えば、サイコロだとそれぞれの目が出る確率は1/6になるはずですが、プログラムを作って実行してみると同じ目が何度も出たりします。
サイコロをふる回数が多いほど1つの目が出る確率は1/6に近づいていきます。回数が少ない場合はばらつきます。
サイコロは、6回ふる場合で同じ目は1回しか出したくない場合は、プログラムで1回出た目は出さないようにしないといけません。
同じ目を出さないようにするプログラムはここでは書きませんが、サイコロの目が出る確率は1/6でないという事は覚えておきましょう。
乱数まとめ
乱数についての説明を行ってみました。
基本的な内容ではありますが、乱数を上手く使いこなす事で面白いゲームを作る事が出来ます。
しっかりと理解して面白いゲームを作るようにしましょう。