我是PHP的新手,我正在尝试编写一个PHP脚本,它应该反复一次又一次地掷骰子,直到每个数字至少滚动一次。 我有很多尝试,包括许多不同的构建循环的方法,但总是会遇到某种错误。 无论我用什么方法,我总是给骰子的每一边一个计数器,看起来像这样:
$rollCount1 = 0;
$rollCount2 = 0;
$rollCount3 = 0;
$rollCount4 = 0;
$rollCount5 = 0;
$rollCount6 = 0;
如果使用数组,它看起来像这样:
$diceSides = array (1,2,3,4,5,6);
这就是我的“while”-loop的样子:
while ($rollCount1 > 0 && $rollCount2 > 0 && $rollCount3 > 0 && $rollCount4 > 0 && $rollCount5 > 0 && $rollCount6 > 0) {
$roll = rand(1,6);
if ($roll == 1) {
echo "<div class=\"dice\">$roll</div>";
$rollCount1 ++;
}
if ($roll == 2) {
echo "<div class=\"dice\">$roll</div>";
$rollCount2 ++;
}
if ($roll == 3) {
echo "<div class=\"dice\">$roll</div>";
$rollCount3 ++;
}
if ($roll == 4) {
echo "<div class=\"dice\">$roll</div>";
$rollCount4 ++;
}
if ($roll == 5) {
echo "<div class=\"dice\">$roll</div>";
$rollCount5 ++;
}
if ($roll == 6) {
echo "<div class=\"dice\">$roll</div>";
$rollCount6 ++;
}
}
我尝试“for”-loop:
for($ rollCount1 = 0,$ rollCount2 = 0,$ rollCount3 = 0,$ rollCount4 = 0,$ rollCount5 = 0,$ rollCount6 = 0; $ rollCount1&gt; 0,$ rollCount2&gt; 0,$ rollCount3&gt ; 0,$ rollCount4&gt; 0,$ rollCount5&gt; 0,$ rollCount6&gt; 0; $ rollCount1 ++,$ rollCount2 ++,$ rollCount3 ++,$ rollCount4 ++,$ rollCount5 ++,$ rollCount6 ++,$ roll = rand(1,6),echo ( “$辊”))
当我尝试“阵列版”时,我使用了
array_rand ($diceSides, $roll);
而不是
$roll = rand(1,6);
但他们都没有工作。
答案 0 :(得分:5)
计算在单独数组中滚动特定数字的次数,并在不再包含任何零时退出循环:
$results = array_fill(1, 6, 0); // Prepare counter array
do {
$roll = rand(1,6); // Random number
echo "Rolled a $roll...\n";
$results[$roll]++; // Count the results
} while(in_array(0, $results)); // Check whether there are still unthrowns