乱数メモ

Phaserでつかえる乱数の調査
結構いろいろ用意されている感じ。

        // ■整数
        // 1から5までの整数を生成する。(お互い含む)
        console.log(Phaser.Math.RND.integerInRange(1, 5));

        // integerInRangeのエリアス
        // 1から5までの整数を生成する。(お互い含む)
        console.log(Phaser.Math.RND.between(1, 5));

        // 0から2の32乗までの整数を生成する。
        console.log(Phaser.Math.RND.integer());


        // ■小数点数
        // 0から1までの小数点数を生成する。
        console.log(Phaser.Math.RND.frac());

        // -1から1までの小数点数を生成する。
        console.log(Phaser.Math.RND.normal());


        // ■角度
        // degree(-180から180)までの整数を生成する。(-180, 180を含む)
        console.log(Phaser.Math.RND.angle());

        // radian(-πからπ)までの小数点数を生成する。
        console.log(Phaser.Math.RND.rotation());

        // ■他
        // 配列のデータを一つ選ぶ
        const data = ["black", "bule", "red", "green"];
        console.log(Phaser.Math.RND.pick(data));

        // 配列の順番をシャッフルする
        Phaser.Math.RND.shuffle(data);
        console.log(data);

シードを設定してみる。

文字列か、配列の文字列ということになっていますが・・・
文字列だと、何を指定しても同じ配列になってしまうので、配列に文字列指定をしています。

        // ■seed
        for (let i = 0; i < 3; i++) {
            let data = [];
            let r = new Phaser.Math.RandomDataGenerator(["a"]);

            for (let j = 0; j < 10; j++) {
                const value = r.between(1, 1000);
                data.push(value);
            }

            console.log(data.join(", ")); // 425, 388, 604, 466, 913, 310, 533, 890, 602, 435
        }

        // 別のシードで実行
        for (let i = 0; i < 3; i++) {
            let data = [];
            let r = new Phaser.Math.RandomDataGenerator(["b"]);

            for (let j = 0; j < 10; j++) {
                const value = r.between(1, 1000);
                data.push(value);
            }

            console.log(data.join(", ")); // 574, 647, 255, 508, 245, 406, 748, 436, 768, 239
        }

shuffleなども再現することを確認。

        const r = new Phaser.Math.RandomDataGenerator(["a"]);
        let data = [];
        for (let i = 0; i < 10; i++) {
            let val = r.integerInRange(1, 1000);
            data.push(val);
        }

        r.shuffle(data);
        console.log(data); //[ 533, 435, 388, 425, 310, 604, 890, 913, 602, 466 ]
投稿日時: 2024-07-27 15:46:27
更新日時: 2024-08-03 11:43:03

内部リンク

最近の投稿

タグ

アーカイブ

その他