new files
This commit is contained in:
parent
3af7344581
commit
86c034bb8b
1364 changed files with 21352 additions and 0 deletions
40
Task/Bulls-and-cows/PHP/bulls-and-cows.php
Normal file
40
Task/Bulls-and-cows/PHP/bulls-and-cows.php
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
$size = 4;
|
||||
|
||||
$chosen = implode(array_rand(array_flip(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)
|
||||
{
|
||||
global $size;
|
||||
return count(array_unique(str_split($g))) == $size &&
|
||||
preg_match("/^[1-9]{{$size}}$/", $g);
|
||||
}
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue