0

我正在研究一些随机生成器,这就像掷骰子,如果所有骰子返回的数字相同,那么如果不是你再试一次,你就赢了。

为了得到六个骰子,我使用了 mt_rand 函数并分别为每个骰子,所以我有这个:

$first = mt_rand(1,6);
$second = mt_rand(1,6);
$third = mt_rand(1,6);
$fourth = mt_rand(1,6);
$fifth = mt_rand(1,6);
$sixth = mt_rand(1,6);

但我不知道如何返回多个随机生成数字的操作数。

如果我会使用 2 个骰子,我会使用

if ( $first === $second ) 

如果第一个和第二个骰子都返回了数字 2,那将返回 true

但是,如果我想在所有 6 个骰子都返回数字 2 时回显 true,我该如何使用它?

编辑:数字 2 只是一个例子,如果我只需要数字 2 我知道如何使用数组和变量来做到这一点,但重点是我只需要匹配所有数字,从 1 到 6 的哪一个都没有关系。而且第一个答案实际上有效,但让我们看看是否可以使用数组。

4

2 回答 2

2

使用数组让您的生活更轻松(例如$dices,使用从 0 到 5 的索引)

只需将它放在一个循环中并在每次迭代时检查。如果一个骰子不是 2,则为$allDicesSameNumber假。

$number = mt_rand(1, 6);
$allDicesSameNumber = true;
for ($i = 1; $i < 6 /* dices */; $i++) {
    $dices[$i] = mt_rand(1, 6);

    if ($dices[$i] !== $number)
        $allDicesSameNumber = false;
}
于 2013-09-11T23:02:05.973 回答
2
$diceCount = 6;
$diceArray = array();
for($i=1; $i<=$diceCount; $i++) {
    $diceArray[] = mt_rand(1,6);
}
if (count(array_count_values($diceArray) == 1) {
    echo 'All the dice have the same number';
}
于 2013-09-11T23:06:43.823 回答