PHP实现猜数游戏
本文实例为大家分享了PHP实现猜数游戏的具体代码,供大家参考,具体内容如下
猜数游戏有两种玩法:
第一种:两个人玩,一方出数字,一方猜。出数字的人要想好一个指定位数的数,数字可重复,不能让猜的人知道。
猜的人就可以开始猜。每猜一个数,出数者就要说大过或小过出的数。
第二种:两个人玩,一方出数字,一方猜。出数字的人要先想好一个没有重复数字的4位数,不能让猜的人知道。猜的人就可以开始猜。每猜一个数,出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。如正确答案为5234,而猜的人猜5346,则是1A2B,其中有一个5的位置对了,记为1A,而3和4这两个数字对了,而位置没对,因此记为2B,合起来就是1A2B。接着猜的人再根据出题者的几A几B继续猜,直到猜中为止。
下面是PHP代码实现:
$number){
write('大了');
}elseif($readInt<$number){
write('小了');
}else{
write('恭喜你,猜对了!');
write('Inputccontinuetoplay');
$readStr=read();
if($readStr=='c'||$readStr=='continue'){
$number=rand($min,$max);
}else{
break;
}
}
}
destroy();
}
/**
*得到一个没有重复数字的四位数
*/
functiongetRandNumber(){
$num=rand(1,9);
$array=array_diff(array(0,1,2,3,4,5,6,7,8,9),[$num]);
shuffle($array);
$subarr=array_slice($array,0,3);//再取3个数字
$str=implode('',array_merge([$num],$subarr));
returnintval($str);
}
/**
*第二种玩法
*/
functionguess_the_number2(){
$number=getRandNumber();
$len=4;//四位数
init();
while(1){
write(sprintf('Pleaseinputyournumber(%s-bitdigit),qorquitexit:',$len));
$readStr=read();
//exitprogram
if($readStr=='q'||$readStr=='quit'){
break;
}
$readInt=intval($readStr);
if($readInt==$number){
write('恭喜你,猜对了!');
write('Inputccontinuetoplay');
$readStr=read();
if($readStr=='c'||$readStr=='continue'){
$number=getRandNumber();
}else{
break;
}
}else{
//判断几A几B
$readInt=str_pad($readInt,$len,'0',STR_PAD_LEFT);//不足四位的补足四位
$number=strval($number);
$readArr=str_split($readInt,1);//casttoarray
$numArr=str_split($number,1);
$aval=0;//几A
$bval=0;//几B
for($i=0;$i<$len;$i++){
if($readArr[$i]==$numArr[$i]){
$aval++;
unset($readArr[$i],$numArr[$i]);
}
}
$bval=count(array_intersect($readArr,$numArr));
write(sprintf('%sA%sB',$aval,$bval));
}
}
destroy();
}
if(PHP_SAPI=='cli'){
//guess_the_number(1);
guess_the_number2();
}else{
echo'Pleaserunundercommandline!';
exit;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。