• 技术文章 > php教程 > php教程

    PHP约瑟夫小游戏的代码示例

    不言 不言 2019-02-14 14:22:10 转载 180

    本篇文章给大家带来的内容是关于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约瑟夫小游戏的代码示例的详细内容,更多请关注php中文网其它相关文章!

    第六期线上培训班
    专题推荐: PHP
    上一篇:PHP中魔术方法的总结(代码) 下一篇:php与jQuery ajax之间数据传送的方法介绍(附代码)

    相关文章推荐

    • PHP 随机数 C扩展随机数 • PHP数组函数知识汇总_php技巧 • 理解php依赖注入和控制反转_php技巧 • 分享常见的几种页面静态化的方法_php基础

    全部评论我要评论

  • 取消 发布评论 发送
  • PHP中文网