Bulls and cows: Difference between revisions

Content added Content deleted
(added php)
Line 996: Line 996:
return ( $g =~ /^[1-9]{4}$/ );
return ( $g =~ /^[1-9]{4}$/ );
}</lang>
}</lang>

=={{header|PHP}}==
<lang php><?php

$size = 4;
$chosen = implode(array_rand(range('1', '9'), $size));

echo "I've chosen a number from $size unique digits from 1 to 9; you need
to input $size unique digits to guess my number\n";

for ($guesses = 1; ; $guesses++) {
while (true) {
echo "\nNext guess [$guesses]: ";
$guess = rtrim(fgets(STDIN));
if (!checkguess($guess))
echo "$size digits, no repetition, no 0... retry\n";
else
break;
}
if ($guess == $chosen) {
echo "You did it in $guesses attempts!\n";
break;
} else {
$bulls = 0;
$cows = 0;
foreach (range(0, $size-1) as $i) {
if ($guess[$i] == $chosen[$i])
$bulls++;
else if (strpos($chosen, $guess[$i]) !== FALSE)
$cows++;
}
echo "$cows cows, $bulls bulls\n";
}
}

function checkguess($g)
{
$h = array();
foreach (str_split($g) as $k) {
if (array_key_exists($k, $h))
return false;
$h[$k] = 1;
}
return preg_match('/^[1-9]{4}$/', $g);
}
?></lang>


=={{header|Python}}==
=={{header|Python}}==