遗忘悠剑

🍀 记录精彩的程序人生 开始使用

可以配置点数概率的骰子🎲函数

很简单的一个控制概率的骰子小函数哈,直接上代码

/**
     *
     * 配置某点数权重骰子
     * @param $prize int 点数
     * @param $rate int 权重(1~100)
     * @return int
     */
    function shai($prize=1,$rate=1){
        $other_rate = intval((100-$rate)/5);
        $yu = 100 - $rate - $other_rate*5;
        $weights = [];
        for ($i=1;$i<7;$i++){
            if($i == $prize){
                $shai[$i] = $rate;
            }else{
                if($yu > 0){
                    $shai[$i] = $other_rate + 1;
                    $yu--;
                }else{
                    $shai[$i] = $other_rate;
                }
            }
            $weightCounter = 0;
            while ($weightCounter++ < ($shai[$i] ?? 0)) {
                $weights[] = $i;
            }
        }
        shuffle($weights);//打乱数组返回第一个元素
        return $weights[0];
    }
echo shai(1,98);

执行结果
image.png

echo shai(3,1);

执行结果
image.png

什么地方用这个?

例如那种摇骰子走步类的游戏,每次摇骰子的时候,你可以把中大奖的点数配置一个概率,这样就可以控制中奖概率咯!
又或者其他类摇骰子的游戏,理论上都可以用上 ~
其他地方的使用自己发散想象吧


🐶 你走,我不送你。你来,风雨无阻,我去接你。

评论
留下你的脚步