加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP彩票门票选手

发布时间:2020-12-13 17:55:25 所属栏目:PHP教程 来源:网络整理
导读:我即将创建一个脚本,为我的彩票选择一个赢家.门票的数量选择如下:金额* 100所以$1.26 = 126门票. 我做了这个,它给了我中奖的票号,但后来我无法得到获胜的用户: $totaltickets = 0;foreach($players as $player){ $totaltickets += $player-depositedValue*
我即将创建一个脚本,为我的彩票选择一个赢家.门票的数量选择如下:金额* 100所以$1.26 = 126门票.

我做了这个,它给了我中奖的票号,但后来我无法得到获胜的用户:

$totaltickets = 0;

foreach($players as $player){

    $totaltickets += $player->depositedValue*100;
}

$winningTicket = rand(1,$totaltickets);

我有这样的行:

Player1 - 1.25$
Player2 - 5.99$
etc..

如果有可能那么我想保持这样,并且每个票证在数据库中没有1000行.

我正在考虑保持你对数字的想法而不是引入一个数组.

我将让球员保持他们的门票位置(开始/结束).当我选择随机票时,我会看看我的号码是否在他们的范围内,如果是,那么我找到了胜利者.

<?php

class TicketMaster {
    private $players = array();
    public $total = 0;

    public function addPlayer($player) {
        $player->tickets[0] = $this->total;
        $this->total += $player->value;
        $player->tickets[1] = $this->total;
        $this->players[] = $player;
    }

    public function selectWinner() {
        $ticket = rand(0,$this->total);

        foreach ($this->players as $player)
            if ($ticket >= $player->tickets[0] && $ticket <= $player->tickets[1])
                return $player;
        return false;
    }
}

class Player {
    public $name = '';
    public $value = 0;
    public $tickets = array(0,0);

    function __construct($name,$value) {
        $this->name = $name;
        $this->value = $value;
    }
}

$ticketMaster = new TicketMaster();

$ticketMaster->addPlayer(new Player("John",200));
$ticketMaster->addPlayer(new Player("Mike",200));
$ticketMaster->addPlayer(new Player("Dave",1000));

echo $ticketMaster->selectWinner()->name;

$ticket = rand(0,$this->total); //change to random_int,but I kept it at rand because eval.in only works with this one

Output:戴夫

戴夫大部分时间都赢了,因为他有1000张门票,而其他两位只有400张门票的球员.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读