ヒットアンドブローとは、何桁かの数字を入力し数を当てる数当てパズルゲーム。
ランダム数値4桁に対して、入力した4桁のヒット数とブロー数を求める。
Hit数
同じ数字が同じ桁に出現する回数
Blow数
同じ数字が違う桁に出現する回数
入力値4桁
2345
コード
<?php
$list = str_split(fgets(STDIN));
$number = [];
foreach ([1,2,3,4] as $i) $number[] = mt_rand(1, 9);
$hit_cnt = 0;
$blow_cnt = 0;
foreach ($list as $k => $v){
if((int)$v === $number[$k]){
$hit_cnt++;
}
if(in_array($v,$number)){
$blow_cnt++;
}
}
echo $hit_cnt,':ヒット',$blow_cnt,':ブロー',PHP_EOL;
echo 'コンピュータ:',$number[0],$number[1],$number[2],$number[3],PHP_EOL;
echo '入力値した値:',$list[0],$list[1],$list[2],$list[3];
結果
1:ヒット1:ブロー
コンピュータ:6761
入力値した値:6424