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; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。