一个小游戏,题目如下:

题目是这样的:有10名罪犯,对他们进行顺序编号(从1开始)。
首先,法官要求偶数号的人站出来杀掉。然后在不打乱原有顺序情况下对他们进行顺序编号。
再然后法官让奇数号的人站出来杀死。依次类推。问:最后一个人是原先10人中的几号?
实现代码如下:

public static void main(String[] args) {int tag = 1;   //第几次杀人int num = 10;  //罪犯人数ArrayList<Integer> list = new ArrayList();    //用来存放罪犯ArrayList<Integer> list0 = new ArrayList<>();   //用来存放罪犯的代号,用于从 list 中移除list0.add(0);System.out.println(list0);for (int i = 1; i <= num; i++) {   //对罪犯进行编号list.add(i);}System.out.println(list);//开始杀人while (true){if (tag % 2 == 1){    //把要杀掉的人设置为 0for (int i = 1; i <= list.size(); i++) {if (i % 2 == 0){   //是偶数list.set(i - 1, 0);}}}else {for (int i = 1; i <= list.size(); i++) {if (i % 2 == 1){    //是奇数list.set(i - 1, 0);}}}list.removeAll(list0);  //把所有为 0 的送走tag++;  //杀人次数加1//只剩下最后一个人if (list.size() == 1){System.out.println("幸存者:" + list.get(0) + "号");}}}

原理图如下:

回溯算法的实现

需求: 现有 10 个犯人,每次数到 5 处刑一个,直到留下最后一个幸存者
实现代码如下:

//需求: 现有 10 个犯人,每次数到 5 处刑一个,直到留下最后一个幸存者
public class Test01 {private static final int prisoner = 20;//10个犯人private static final int num = 5;//每数到5,杀一个人//用节点来代表人  //内部类public class Node{int val; //表示节点的下标值Node next; // 此节点的下一个节点public Node(int val){this.val = val;}}//杀人方法public void pris(){Node one = new Node(1);//定义第一个节点Node current = one; //当前为第一个int count = 0;  //计数//定义下一个节点,并让当前节点的 next 为下一个节点  并连接起来for (int a = 2;a <= prisoner;a++){current = current.next = new Node(a);}//此时当前节点为最后一个节点  让它的 next 为第一个节点current.next = one;  //头尾相接System.out.println("杀人顺序为:");//当  当前节点和下一个节点不是同一个节点时while (current != current.next){//至少还有两个人,继续杀for (int b = 1;b < num;b++){//每次到4就会跳出该循环current = current.next;}count++;System.out.println("第" + count + "次杀死" + current.next.val + "号prisoner");current.next = current.next.next;}//看看幸存者System.out.println("幸存者为:" + current.val + "号");}public static void main(String[] args) {Test01 t1 = new Test01();t1.pris();}
}

原理图如下:

杀人游戏Java代码相关推荐

  1. 五子棋游戏Java代码简单实现(含活动图和类图设计)

    五子棋游戏Java代码简单实现(含活动图和类图设计) 文章目录 五子棋游戏Java代码简单实现(含活动图和类图设计) 活动图设计 类图设计 代码实现 总结 OOA和OOD设计 代码设计 可改进部分 活 ...

  2. java猜拳游戏代码_猜拳游戏 - java代码库 - 云代码

    [java]代码库public class Computer { String name; int score; public int showfist(){ int quan; quan=(int) ...

  3. 贪吃蛇小游戏--Java代码

    贪吃蛇游戏 图纸设计 按帧动 静态页面绘制 让小蛇动起来 吃豆豆 积分展示 展望 难点:计算坐标 package comleo.snake;import javax.swing.*;public cl ...

  4. 筹码游戏java代码编写,PAT(Basic Level) 乙级练习题 ------ 1071 小赌怡情 java

    1071 小赌怡情 题目: 常言道"小赌怡情".这是一个很简单的小游戏:首先由计算机给出第一个整数:然后玩家下注赌第二个整数将会比第一个数大还是小:玩家下注 t 个筹码后,计算机给 ...

  5. 贪吃蛇游戏java代码_Java实现贪吃蛇游戏

    最近JAVA和JSwing上手练习了一下贪吃蛇,供大家参考,具体内容如下 欢迎交流和加入新的内容 用到了JSwing,下面是一些具体的思路 实现 * 蛇: 采用单链表记录首尾,整个蛇被分为lattic ...

  6. 扑克牌游戏java代码_java实现简易扑克牌游戏

    本文实例为大家分享了java实现扑克牌游戏的具体代码,供大家参考,具体内容如下 游戏功能描述 1.创建一副扑克牌: 包括四种花色:黑桃,红桃,梅花,方片 包括十三种点数:2-10,J,Q,K,A 2. ...

  7. 小学数学闯关游戏 java代码_Java语言实现小学数学练习

    package per.java.shejiti; import java.io.*; import java.util.ArrayList; import java.util.Collections ...

  8. 24点游戏java代码 中国开源社区_编程之美 1.16 24点游戏

    24点游戏大家都知道:4张牌,可以进行+ - * / 四种运算,可以使用括号,每个牌用一次,任意组合构造表达式使结果为24. 扩展问题:n个整数,四种运算,可使用括号,每个数字使用一次,使表达式结果为 ...

  9. 黑白块游戏java代码_用java做的一个小游戏—黑白反斗棋(适合菜鸟)

    用Java做的一个小游戏,黑白反斗棋,我玩过了5*5和10*10的.是学习之后做的,不是自己原始开发的. import java.awt.Color; import java.awt.FlowLayo ...

最新文章

  1. N35-第九周作业-张同学
  2. 逃亡的准备(大数据版)
  3. Android中利用Jsoup让WebView清除Html标签并让图片适应大小并居中
  4. Github项目解析(九)--实现Activity跳转动画的五种方式
  5. 论文浅尝 | 通过知识到文本的转换进行知识增强的常识问答
  6. jdbc远程连接mysql url_jdbc连接mysql之url书写
  7. TNonblockingServer 连接管理
  8. 创建设计模式 - 抽象工厂设计模式
  9. Nancy跨平台开发总结(六)三层架构之Token认证的Rest API
  10. URAL1018 Binary Apple Tree
  11. 面试题:+=(python中列表+=操作)
  12. Oracle Database Documentary Library
  13. graphpad prism柱状图横坐标斜着_GraphPad Prism 绘图教程 | 如何在图表中对齐对象
  14. UMD 被淘汰了吗?不考虑的 UMD 的库如何在纯 UMD 前端项目中运行?
  15. java 读书笔记_《java编程思想》读后感
  16. Python怎么读?
  17. 特斯拉Tesla Model 3整体架构解析
  18. Vue之jwt(跨域身份验证,令牌)
  19. 目标跟踪算法综述与分析
  20. 成长的第一步是走出舒适区

热门文章

  1. node.js+Express计算机毕业设计疫苗药品批量扫码识别追溯系统(程序+LW+部署)
  2. 球球大作战测试服android版,球球大作战6.0
  3. java regexoptions.compiled_RegexOptions.Compiled的含义和使用
  4. android新技术 1
  5. Github无法打开
  6. 一键重装Win10图文版教程
  7. 脑洞 | 横扫围棋界的AlphaGo竟然出纪录片了!介意剧透者慎点……
  8. 微信小程序语音转化为文字
  9. 电动汽车充电站监控系统设计_kaic
  10. mybatis批量修改2种方式