31. ランダムな数の作り方


ランダムな数を生成するには普通stdlib.hのrand()関数を利用しますよね。

しかしDXライブラリにはもっとよい乱数の生成関数があります。rand()関数は、ランダムな数に見えて実は全然

ランダムな数ではありません。初期値を設定しないと、毎回同じ値がでてしまいます。

rand()関数ででてくる数は、毎回決まっていて、

41 , 18467 , 6334 , 26500 , 19169 , 15724,,,,,,,毎回この値が出ます。

しかしDXライブラリでは、標準でいつも違った乱数が出ます。

GetRand()関数を使います。0〜引数に持たせたint型の数値までのどれかの値をリターンで返します。

例えば

x = GetRand(10) ; とすれば、xには0〜10のどれかの値が入ります。

また、乱数を初期化したいときは初期化関数SRand()を利用しましょう。初期化については32節で説明します。

では出たら目な位置に、画像を100枚描画するプログラムを書いてみます。

このプログラムは横640ピクセル、縦480ピクセルの画面である事を利用しています。


#include "DxLib.h"
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        ChangeWindowMode( TRUE ) ;          // ウインドウモードに変更
        if( DxLib_Init() == -1 ) return -1; //DXライブラリ初期化 エラーが起きたら終了 
 
        int i,image[16];
 
        LoadDivGraph( "char.png" , 16 , 4 , 4 , 32 , 32 , image ) ; //画像を分割してimage配列に保存
                                
        for(i=0;i<100;i++)
                DrawGraph(GetRand(640),GetRand(480),image[4],TRUE);//ランダムな場所に画像を描写
 
        WaitKey();   // 何かキー入力があるまで待つ
        DxLib_End() ;// DXライブラリ使用の終了処理
        return 0 ;   // ソフトの終了
}

実行結果

→掲示板で質問する



- Remical Soft -