本篇文章给大家带来的内容是关于PHP约瑟夫小游戏的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
30 个人在一条船上,超载,需要 15 人下船。于是人们排成一队,排队的位置即为他们的编号。报数,从 1 开始,数到 9 的人下船。如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
$numberStart = 30; //开始的人数 $numberLive = 15; //最终剩下的人数 $numKill = 9; //"中奖"号码 $peopleList = []; for($i=1; $i<=$numberStart; $i++){ $peopleList[$i]=1; //1表示生 0表示死 } $numSay=0;//报号 $i =1;//索引(人员位置编号,相当于枪指向谁) $maxIndex = $numberStart; while (true){ if($i > $maxIndex ){//循环一圈后,重新开始 $i = 1; } if($numberStart==$numberLive){//游戏结束条件 break; } if($peopleList[$i]==0){//如果这个人已经"离开"了,让下一个人报号 $i++; continue; } $numSay++; if($numSay==$numKill){ $peopleList[$i] = 0; $numSay = 0; echo $i.'号下船了'.PHP_EOL; $numberStart--; } $i++; } print_r($peopleList); /* 9号下船了 18号下船了 27号下船了 6号下船了 16号下船了 26号下船了 7号下船了 19号下船了 30号下船了 12号下船了 24号下船了 8号下船了 22号下船了 5号下船了 23号下船了 */
登录后复制
以上就是PHP约瑟夫小游戏的代码示例的详细内容,更多请关注Work网其它相关文章!