我正在研究一些随机发生器,它就像掷骰子一样,如果所有骰子返回的数字都比你赢得游戏的数量多,如果不是你再试一次。
为了获得六个骰子,我使用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号,我该如何使用它?
编辑: 数字2只是一个例子,如果我只需要数字2我知道如何使用数组和变量,但点是我只需要所有数字匹配,从1到6哪个无关紧要。实际上有效,但让我们看看是否可以使用数组。
答案 0 :(得分: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;
}
答案 1 :(得分: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';
}