乱数を使ったプログラミング | Scrachとロボットプログラミング
スクラッチ乱数というテクニックを使い、ロボットが自分の意志で動き出しているようなことがプログラミングでできます。乱数は、コンピュータが自分で作り出すめちゃくちゃな数字で、乱数を発生させるコマンドが動くたびに色々な数字を出してきてくれます。今日はこの乱数というテクニックを使って今までより少し面白い、自発的なロボットクムクムを作ってみたいと思います。
乱数とは
乱数とは「ランダムな数」という意味で、この乱数という言葉はプログラムの世界でとても多く使用されます。
分かりやすい例としては「サイコロ」を降ることをイメージしてみてください。
サイコロは1~6までの目があり、サイコロを振る度に出る目が変わります。
このように規則性が無く、次にどの数字が出るか分からないものが乱数で、スクラッチ(Scratch)にも乱数の機能があります。
乱数を発生させるスクラッチ(Scratch)のブロック
スクラッチ(Scratch)で乱数を使うには、コード⇒演算の中の下記のブロックを使います。
このブロックを使うと「●から▲までの乱数」と書かれた●と▲に自分が発生させたい乱数の範囲の数字を指定します。
たとえばこのブロックでは1~10までとなっていますが、たとえば20から100までとか、1から2までとか自由な範囲で乱数を発生させることができます。
このブロックは、乱数を発生させるだけのブロックなのでこれ単体で使用することはできませんが、クリックをしてみると、クリックするたびにブロックの下に選び出した数字を吹き出しでみせてくれます。
スクラッチの起動
クムクム公式ホームページからいつものようにスクラッチWEBエディタをオープンしましょう。
ブラウザーは必ず MicrosoftEdgeか GoogleChromeを使用してください。
クムクムロボットは、ブラウザーのWEBBLEという機能を使ってスクラッチと通信しますが、このWEBBLEはこの二つのブラウザーでしか使用できません。
iPadではBluefyを利用するとBluetooth通信ができるようですが、100%の動作保証はできません。
またMacでは、Chromeを使っても動作しない機種やOSがあるようです。気を付けてください。
スクラッチプログラミング
1.乱数で「あたり」を判定するスクラッチ(Scratch)プログラム
それでは、乱数を発生させてルーレットのようにどんな数字がわからないが、予測した数字と一致したら「あたり」と判定するプログラムをスクラッチで作ってみます。
まず、スクラッチ(Scratch)の乱数ブロックはそのまま使えないので、発生した乱数を一時的に記憶する変数を用意し、その変数へ発生した乱数を代入します。
次に、この乱数という名前の変数にスクラッチ(Scratch)の乱数ブロックをはめ込んで1~10までの乱数を代入します。
最後に、スタートフラグがクリックされたらこの記憶された乱数という変数の中が1なら「あたり」と2秒いうブロックを加えてプログラムを完成させます。
2.数字予測ゲーム
せっかくなので、ちょっとプログラムを改造してみましょう。
あなたはコンピュータが発生させる数字を予測し、もし当たれば「あたり」違えば「まちがい」というプログラムを作ってみます。
3.質問をしてキーボードから数字を入力させる方法
次に出る乱数を予想して入力してもらい、その入力された数字と乱数で出た数字の一致を判定するプログラムを作ってみましょう。
スクラッチで、質問をしてキーボードから何かの回答を入力させるブロックは、[調べる]-[あなたの名前は何ですか?と聞いて待つ]ブロックを使います。そして、そこで入力されたデータは[答え]のブロックに代入されます。
[答え]ブロックの前の□にチェックを入れておくとステージ上に[答え]に入力されたデータが表示できます。
では簡単ですが下記のプログラムを作ってみます。
これで、スクラッチの乱数を使った当たり判定のプログラムはできました。
ロボットで乱数を使って楽しい動きを作る
乱数を使うと、ロボットがさも自分で考えて動いているような錯覚になるようなプログラムをスクラッチ(Scratch)で作ることができます。
とても面白いのでクムクムロボットロボットで試してみてください!
下記はそのいくつかの例です。
腕を、”左・右”に勝手に動かすクムクムロボット
単純に1と2のどちらかの乱数を発生させ、その乱数が1なら右に、2だなら左に顔を回転させるプログラムです。