ゲームではお馴染みの乱数
乱数って?
何らかのプログラミング言語の経験のある人には説明不要でしょうが、Scratchをやってみよう、という人はプログラミングが初めてということも多いと思いますので、簡単に『乱数』について説明します。
乱数とは、一言で言えば、
『サイコロを振った時に出る目のように、次にどんな数が出るか判らない数』
のことです。
ゲームでは乱数の出番が多くあります。
たとえばカードゲームでは、プレイヤーに手札を配る前にカードをシャッフルして誰がどのカードを持っているかお互い判らないようにします。コンピュータのプログラムでこれを実現するには乱数を使います。
また多くのボードゲームでは、ゲーム進行上何度もサイコロを振る場面があります。最初に例に挙げたように、『サイコロを振った時に出る目』はプレイヤーが計算によってあらかじめ知ることができる値ではありません。これをコンピュータのプログラムで実現するには乱数を使います。
このように、ゲームで『プレイヤーにはどうなるか判らない物事』を実現するために、乱数は必要なのです。
その他、モンテカルロ法のように、シミュレーションや技術計算に乱数を用いることもあります。
乱数ブロック
Scratchには乱数を発生させるブロックがあります。
ブロックを観ればだいたい使い方は判ると思いますが、このブロックは乱数の下限値と上限値を指定し、その間(両端含む)の整数値をランダムに発生します。値ブロックなので、長円形の穴のあるブロックと組み合わせて使用します。
乱数で動かす
これを利用して、前回追加したDragonflyのスプライトを動かしてみましょう。
今回は乱数利用の簡単な利用例として、
『一定時間(一定回数はばたく)毎に、ランダムに場所が変わる(ワープする)』
というようにします。
ブロックは、例えば以下のようにすると良いでしょう。
『x座標を〇、y座標を〇にする』ブロックと、『〇から〇までの乱数』ブロックを2つを組み合わせています。
ステージの範囲は、x方向が -240≦x≦240、y方向が -180≦y≦180 です。スプライトに端の座標を設定してしまうとステージ外にはみ出してしまうので、今回は移動先を -200≦x≦200、-150≦y≦150 としています。
これを前回作成したDragonflyのスクリプトに組み込んでみましょう。
10回羽ばたいたら場所をランダムに移動するようにしています。
それでは動かしてみましょう。
今回は短めですがこんなところで。
コメント