Java杀人游戏(使用for和if嵌套完成)

Java杀人游戏(使用for和if嵌套完成)

今天和大家分享一个小的游戏。

玩法:

回故历史我们不难发现很多皇帝都以杀人为乐,所在帝制没有在中国遗留下来。记得在古希腊有一任皇帝,娶了一个漂亮的妃子,心里十分高兴,因此想大赦天下,又不想把过多的犯人放掉。这时有一个大臣出了一个主意:将所有犯人以100人为一组,每组当中只能有一个人活下来。大臣叫每组的犯人站成一个圆圈,然后随机的在每组的某一个犯人后面站一个郐子手,然后由皇帝指定一个数字!然后从郐子手的位置顺时针走位,每过一个人查一个数正好到皇帝指定数字的位置,将其位置的人杀掉。以此规则循环做直到每组当中只有一个人的时候!将此人放掉,奖黄金百两。现在假定如何你是其中的囚犯,囚犯以郐子手所在位置为一号位,皇帝给的数字为4,请问你站在几号位置上可以得百两黄金。

代码:

// An highlighted block
	/*
     * 杀人游戏For方法
     * @param personNumber 人数(参加游戏的人数)
     * @param customNumber 自定义数字(杀人数字)
     * @return
     * 第一个变量 有多少人玩这个游戏 ; PersonNumber(人数)
     * 制定的数字是几 customNumber (自定义数字)
     * 这里的杀人位置 有点争议:
     * 1.如果站在某个人身后,顺时针走位,从那个人开始计数(杀人数字),哪样 方法中的customNumber = customNumber-1
     * 2.如果站在某个人身后,顺时针走位,那个人参加计数(杀人数字),哪样 方法中的customNumber = customNumber
     * */
    public static int killPersonGame(int personNumber , int customNumber) {
        //来个数组 把这些人装起来
        int[] person = new int[personNumber];
        //把人装进去 名字是 1~100
        for(int i = 0 , j = person.length ; i < j ;i++) {
            person[i] = i+1;
        }
        int killNumber = 0;
        int index = 0;
        //让这些人围成一个圈(这个for是横排)
        for(int i = 0 , j = person.length ; i < j ; i++) {
            //因为就能活一个人,这个地方判断,并且定义一个index变量,它代表杀了第几个人了(也就是说 index=personNumber-1的时候,就剩下一个活着的了)
            //同样第三方变量定义在For外面
            //反之不等于就继续杀人
            if(index != personNumber-1){
                //一圈下去还有没被杀的人且个数大于一(继续)
                if(person[i] != -1){
                    //定义一个杀人计数的变量 killNumber用来查数
                    //(画面:假如自定义数字为3,那么这个黑道大哥,走过一个人查一个数,查到三的时候,来一刀。然后从零开始查,重复刚刚的操作)
                    //这个要定义在for外面 第三方变量
                    if(killNumber == customNumber-1) {
                        //来一个记录的,查数,杀了第几个啦
                        System.out.println("侩子手大哥,这个小老弟是被你第"+  index++  +"杀掉的,这个人叫"+person[i]);
                        //杀人
                        person[i] = -1;
                        //清零
                        killNumber = 0;
                    }else {
                        killNumber++;
                    }
                }
                //这个if是让帮人首尾连接,围成一个圈
                if(i == person.length-1) {
                    i = -1;
                }
            }
        }
        //大哥就剩一个人了这人叫啥呢
        for(int i = 0 , j = person.length ; i < j ; i++){
            if(person[i] != -1) {
                int survivalName = person[i];
                System.out.println("大哥这个活的人叫:"+person[i]);
                return survivalName;
            }
        }
        return -1;
    }

执行:


 public static void main(String[] args) {
 		//100人,每隔4个人杀一个
        killPersonGame(100,4);
    }

结果


>>大哥这个活的人叫:34

Process finished with exit code 0
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林陌白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值