Как найти подходящие монеты подряд?

Я хочу найти совпадающие монеты лица в ряд. Мне удалось сделать так, чтобы 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;

-1

Решение

$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;
2

Другие решения

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;
1

По вопросам рекламы [email protected]