首页 > 编程 > PHP > 正文

PHP骰子游戏篇之优化

2020-03-22 19:25:55
字体:
来源:转载
供稿:网友
  • 前一篇关于PHP版本的骰子游戏(详见此),for循环的实现,在高并发下,效率显然是非常地低的。

    下面是优化结果,如果您有更好的方法,望不吝赐教!


    <?php /**  * Description of Dice  *  * @author momosweb(AT)qq.com  */ html' target='_blank'>class Dice {     private $dice_type = 6; // 骰子类型     private $number = 1;    // 骰子数量     private $people = 1;    // 玩家数量          /**      * 设置骰子类型      * @param int $dice_type      */     public function set_dice($dice_type)     {         $dice_type = intval($dice_type);         $this->dice_type = $dice_type ? $dice_type : $this->dice_type;     }      /**      * 设置骰子数量      * @param int $number      */     public function set_number($number)     {         $number = intval($number);         $this->number = $number ? $number : $this->number;     }          /**      * 设置玩家数量      * @param int $people      */     public function set_people($people)     {         $people = intval($people);         $this->people = $people ? $people : $this->people;     }      /**      * 返回骰子点数      * @return intval      */     private function roll()     {         return mt_rand(1, $this->dice_type);     }          /**      * 返回骰子游戏结果      * @return array      */     public function result()     {            // 根据人数返回单次结果         $fun_people = function() {             // 构造骰子生成器             $fun_game = function() {                 return $this->roll();             };                          // 根据骰子数生成单次结果 www.it165.net            $arr_number = range(1, $this->number);             return array_map($fun_game, $arr_number);         };                  $arr_people = range(1, $this->people);         $result = array_map($fun_people, $arr_people);                  return $result;     } }  $Dice = new Dice(); $result = $Dice->result(); var_dump($result);  ?> 

    哈哈,又到出题时间啦!如果需要比对最终结果,看谁的总点数最大呢?

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表