前一篇關于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編程鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答