Я хочу найти совпадающие монеты лица в ряд. Мне удалось сделать так, чтобы 3 совпадающих хвоста подряд завершили цикл.
Но как я могу включить головы (кажется, игнорировать головы)?
Например:
0 is heads
reset
0 is heads
reset
1 is tails
1 is tails
1 is tails
total flips took is: 5
PHP:
$flipCounts = 0;
$matchingFaceTypes = 0;
$targetReached = false;
while ($matchingFaceTypes < 3 ) {
$faceType = rand(0, 1);
$flipCounts++;
if($faceType == 0) {
$matchingFaceTypes++;
echo $faceType . " is heads ". "\n";
}
if($faceType == 1) {
$matchingFaceTypes++;
echo $faceType." is tails ". "\n";
} else {
$matchingFaceTypes =0;
echo " reset ". "\n";
}
} echo "total flips took is: " . $flipCounts;
$maxMatches = 3;
$matches = array('tails' => 0, 'heads' => 0, 'total' => 0);
while(max($matches['tails'], $matches['heads']) < $maxMatches) {
$faceType = rand(0, 1);
if ($faceType) {
$matches['heads']++;
$matches['tails'] = 0;
echo $faceType . " is heads\n";
}
else {
$matches['tails']++;
$matches['heads'] = 0;
echo $faceType . " is tails\n";
}
$matches['total']++;
}
echo "total flips took is: " . $matches['total'];
Говоря о макс ()
$maxMatches = 3;
$total = 0;
$matches = array('tails' => 0, 'heads' => 0);
while(max($matches) < $maxMatches) {
$faceType = rand(0, 1);
if ($faceType) {
$matches['heads']++;
$matches['tails'] = 0;
echo $faceType . " is heads\n";
}
else {
$matches['tails']++;
$matches['heads'] = 0;
echo $faceType . " is tails\n";
}
$total++;
}
echo "total flips took is: " . $total;
Else относится ко второму if, так что else будет взято, если $ facetype == 0
Следующая проблема: вы не проверяете, похож ли последний тип на предыдущий
Я бы порекомендовал переменную с именем $lasttype
и проверьте, если $faceType
равно, если не сбросить счетчик и после этого сделать вывод
$flipCounts = 0;
$matchingFaceTypes = 0;
$ctype=0;
$targetReached = false;
$lasttype=-1;
while ($matchingFaceTypes < 3 ) {
$faceType = rand(0, 1);
$flipCounts++;
if($faceType != $lasttype) {
if($lasttype!=-1)
echo " reset ". "\n<br/>";
$lasttype=$faceType;
$matchingFaceTypes =0;
}
if($faceType == 0) {
$matchingFaceTypes++;
echo $faceType . " is heads ". "\n<br/>";
}else{
$matchingFaceTypes++;
echo $faceType." is tails ". "\n<br/>";
}
}
echo "total flips took is: " . $flipCounts;