Three Out

 ppublic static int play(int[] round,int nowStep,int step)
    {
        //已经数了一个数 例:3个数,它需要知道已经数到第几个数了
       int temStep=nowStep;
        //把数到3的玩家用“0”标记他,表示他已经出局。
       int numIsZero=0;
        //反回最后一个玩家的位置
       int result=-1;
        //所有人数数
       for(int i=0;i<round.length;i++)
        { 
            //如果玩家没有被标记为"0"也就是出局,才可以数这3个数
          if(round[i]!=0)
                //数了一个了,自然要减掉一个数
               temStep--;
            //如果3个数数没了。应该在弄3个数,目的是直到所有玩家出局。
          if(temStep==0)
            {
                //保存数到3个这个人的位置
               result=i;
                //下面的print是为了显示出出局玩家的顺序。
                //System.out.print("["+round[i]+"] ");
                //这个i玩家已经数到3了,所以标记他出局给他值"0".
               round[i]=0;
                //让后面的玩家在读这3个数
               temStep=step;
            }
        }
        //查看是不是所有玩家都出局了
       for(int i=0;i<round.length;i++)
           numIsZero+=round[i];
        // **这一步保存没数完的数,然后循环回来让前面的人继续数
       nowStep=temStep;
        //如果所有玩家都被标记出局 
       if(numIsZero==0)
            //返回出局玩家的位置,因为树组从0开始,所以加1
          return result+1;
       else
            //所有玩家就是一个圈,把数据传回去,在走一圈
            //round 圈里的人包含了被标记的
            //nowStep 当前数到几了!,如果第3个人数到1 那么前面的人要数2和3
            //step 游戏规则里数的几个数
           return play(round,nowStep,step);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值