本格的なゲームを作るにはランダム関数(乱数)が必要不可欠です。乱数といっても大まかに3種類に分類されていると思って構わないと思います。使い分けをすることによってゲーム全体の裏ハッタリ度がアップすることを願っています。
メルセンヌ・ツイスタ法の使用方法を以下に表します。基本的に中身には一切ふれず、関数の呼び出し名、引数の変更をしました。使用するときはライセンスの確認を怠らないでください。シード値はデフォルトで使用されている5489UL、テストの内容は0x0~0xfまでの値をひたすら生成してカウントアップさせています。
int main(void)
{
REG_WSCNT = 0x4317;
BgInit();
IrqInit();
RndInit(5489UL);
KeyInit();
char str[32];
u32 num[0x10];
_Memset(&num, 0x00, sizeof(num));
for(;;)
{
// VBlankIntrWait();
KeyExec();
// Stop
if(KeyGetCnt() & KEY_A)
{
continue;
}
num[RndU32() & 0xf]++;
for(s32 i=0; i<0x10; i++)
{
_Sprintf(str, "0x%x:%d", i, num[i]);
BgAsciiDrawStr(0, i, str);
}
}
}
