【发布时间】:2014-02-01 14:40:15
【问题描述】:
我是 PHP 新手,正在尝试编写一个 PHP 脚本,该脚本应该模仿一遍又一遍地掷骰子,直到每个数字至少掷一次。 我进行了很多尝试,包括许多不同的构建循环的方法,但总是会出现某种错误。 无论我使用什么方法,我总是在骰子的每一面都设置一个计数器,如下所示:
$rollCount1 = 0;
$rollCount2 = 0;
$rollCount3 = 0;
$rollCount4 = 0;
$rollCount5 = 0;
$rollCount6 = 0;
如果使用数组,它看起来像这样:
$diceSides = array (1,2,3,4,5,6);
这就是我的“while”循环的样子:
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”循环的尝试:
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);
而不是
$roll = rand(1,6);
但它们都不起作用。
【问题讨论】:
-
您到底想用
for循环做什么?它没有运行任何东西,因为第一个语句说 set$rollCount1 = 0而第二个语句说 only loop while$rollCount1 > 0。这永远不会发生,因为$rollCount1以0开头。 -
您的
for循环到底是什么? -
我认为第一个语句告诉代码从哪里开始,第二个语句应该循环多长时间。因此,只要所有 $roolCounts 不再为 0,它就会从 0 开始并循环,这意味着至少为 1。我看错了吗?
标签: php arrays loops random dice