0 php arrays random loops dice
我是PHP的新手,我正在尝试编写一个PHP脚本,它应该一遍又一遍地模仿掷骰子,直到每个数字至少滚动一次.我有很多尝试,包括许多不同的构建循环的方法,但总是会遇到某种错误.无论我用什么方法,我总是给骰子的每一面一个计数器,看起来像这样:
$rollCount1 = 0;
$rollCount2 = 0;
$rollCount3 = 0;
$rollCount4 = 0;
$rollCount5 = 0;
$rollCount6 = 0;
Run Code Online (Sandbox Code Playgroud)
如果使用数组,它看起来像这样:
$diceSides = array (1,2,3,4,5,6);
Run Code Online (Sandbox Code Playgroud)
这就是我的"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 ++;
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试"for"-loop:
for($ rollCount1 = 0,$ rollCount2 = 0,$ rollCount3 = 0,$ rollCount4 = 0,$ rollCount5 = 0,$ rollCount6 = 0; $ rollCount1> 0,$ rollCount2> 0,$ rollCount3> 0,$ rollCount4> 0,$ rollCount5> 0,$ rollCount6> 0; $ rollCount1 ++,$ rollCount2 ++,$ rollCount3 ++,$ rollCount4 ++,$ rollCount5 ++,$ rollCount6 ++,$ roll = rand(1,6),echo("$ roll"))
当我尝试"阵列版"时,我使用了
array_rand ($diceSides, $roll);
Run Code Online (Sandbox Code Playgroud)
代替
$roll = rand(1,6);
Run Code Online (Sandbox Code Playgroud)
但他们都没有工作.
计算在单独数组中滚动特定数字的次数,并在不再包含任何零时退出循环:
$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
Run Code Online (Sandbox Code Playgroud)