如何解决我的PHP随机骰子投掷者?

时间:2014-01-13 18:07:14

标签: php arrays loops random dice

我是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);

但他们都没有工作。

1 个答案:

答案 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

Sample here