はじめての人でもプログラミングを楽しめる入門講座、前回は「もし」ブロックと「判断」カテゴリーのブロックを使って、おしたキーごとにプログラムを設定してブラウンを左右に動かせるようにしました。
 
 
さて、ゲームで遊ぶときには毎回同じ結果になってはつまらないですよね。たとえば、敵のキャラクターなどはどんな動きをするのかわからないほうが熱くなれますし、「くじ引き」のくじも何が出るかわからないからおもしろいのです。これらは、結果がランダムに変わるようなプログラムを作れば実現できます。ランダムとは、「不規則な」とか「バラバラな」、「デタラメな」という意味です。今回は「乱数」という考えを学んで、そのようなプログラムを作ってみましょう!
乱数

それでは下記のリンクからLINE entryのワークスペースにアクセスしてプログラミングを始めましょう。
ワークスペース


■乱数を知ろう
「乱数」とはランダムに決まる数値のことです。身近な物の中ではサイコロをイメージするといいでしょう。サイコロを転がしたときに出る目は1から6の間の数で、何が出るかわかりません。1が出るかもしれないし、6が出るかもしれません。また、4が出たあとに2が出るかもしれないし、5が2回つづけて出るかもしれません。サイコロの出る目は不規則、つまりランダムなのです。だから、サイコロは1から6の乱数を出すことができる物と言えます。

スクリーンショット 2021-04-09 182322

プログラミングでは乱数を使ってランダムにキャラクターを動かしたり結果を変えることができます。
それでは実際に乱数を見てみましょう。「表示」カテゴリーから「”こんにちは”を言う」ブロックを1つ、「計算」カテゴリーから「”0”から”10”間の乱数」ブロックを1つ取り出し下の図のように組み合わせます。
 スクリーンショット 2021-04-09 153105
「”0”から”10”間の乱数」ブロックは”こんにちは”の部分に組み合わせます。

組み合わせることができたらスタートボタンをクリックして何回かプログラムを実行してみましょう。
乱数1

実行するたびにブラウンが0~10までのどれかの数字を言っていれば成功です。(何度か続けて同じ数字が出ることがあります)
 
■乱数を使ってランダムに動きを変えよう
乱数を使ってスタートボタンをクリックしたときに、ボックスの中身がコインとトゲのどちらかが出てくる、くじ引きふうのゲームを作ります。
まずはキャラクターレイヤーのバツをクリックしてブラウンを消します。そしてスタートボタンの左の「+」をクリックして「ボックス」というキャラクターを追加します。ボックスは「ファンタジー」カテゴリーの中にあります。
(第2でキャラクターの追加と削除をしましたね)
図3

ボックスが追加できたらプログラミングを始めます。今回は次のブロックを取り出します。
・「開始」カテゴリーから「スタートボタンをクリックした時」ブロック1つ
・「制御」カテゴリーから「もし”正しい”なら でなければ」ブロック1つ
・「表示」カテゴリーから「”ボックス_1”のイラストに変える」ブロック2つ
・「判断」カテゴリーから「”10”=”10”」ブロック1つ(左の値と右の値が等しいという条件)
・「計算」カテゴリーから「”0”から”10”間の乱数」ブロック1つ
 
そして以下の図のように組み合わせて数値も変えてください。
スクリーンショット 2021-04-09 182934
乱数のブロックは「”10”=”10”」ブロックの左側の10に組み合わせます。

組み合わせることができたら実行して確認しましょう。何回か実行して宝物のときとトゲのときがあれば完成です。
乱数

それではプログラムの解説です。スタートボタンをクリックしたときに乱数の値が1もしくは2に決まります。もし乱数の値が1のときはボックス_3(コイン)、1でなければ(2のとき)はボックス_2(トゲ)のイラストに変えるというプログラムになっています。乱数は、1が出るか2が出るかわかりませんので、スタートボタンをクリックするたびに宝物が出るかトゲが出るかもわかりません。どちらが出るかはランダムです。
 
■コインを出にくくしてみよう
今作ったプログラムでは1と2のどちらかが出るので、半分の確率でコインが出てきました。それではコインを出にくくするにはどうすればよいでしょうか?
そうですね。1から2の乱数ではなく、1から10の乱数など多くの数の中から1のときにコインが出てくるようにすれば出にくくすることができます。
それでは「"1"から"2"間の乱数」の2を10に変えて、何回かプログラムを実行してみましょう。
図1

さきほどよりもコインが出てくる回数が減ったように感じますね。くじ引きでイメージをしてみましょう。元のプログラムでは当たり(1)とはずれ(2)の2つでした。「”1”から”10”間の乱数」に変えることで当たり(1)が1つ、はずれ(2~10)を9つに変えたイメージになります。
 
今回はここまで。
乱数を使うことで決まった動きではなく、ランダムに結果が変わるプログラムを作ることができました。乱数はLINE entryの「みんなの作品」で公開されているゲーム作品にもよく使われているので、どんな使い方をしているか見てみましょう。