一个小游戏,题目如下:

题目是这样的:有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. TLB的作用及工作原理
  2. CPU调度(CPU Scheduling)
  3. 动圈耳机振膜_耳机中的动圈、动铁、圈铁都是什么意思 买哪种最好?
  4. php获取url文件大小,PHP通过URL获取文件大小
  5. 组件文件已损坏或android内部模块,android - Android Q更新后,模块化系统组件在托管配置文件中不可用 - 堆栈内存溢出...
  6. Django简介以及安装
  7. PHP中的中文截取乱码问题_gb2312_utf-8
  8. python字符串添加成员_Python - 字符串的操作方法
  9. iOS开发那些事-iOS常用设计模式–委托模式案例实现
  10. python绘制星空图_【Python】基于某些列删除数据框中的重复值
  11. Lua,Lua API,配置文件
  12. Spring(三)Bean继续入门
  13. 小米路由器r3gv2/r4a Lean的OpenWrt固件
  14. ACE admin 后台管理框架
  15. Visual C++鼠标画线操作
  16. 基于go websocket写一个聊天室
  17. 使用python实现往手机发短信(基于twilio)
  18. 详细介绍CoinList 2022 年夏季种子项目, web3概念最亮眼!
  19. CAcls命令在提权中的使用
  20. IDL转换BSQ格式至BIL

热门文章

  1. 在Vue中生成二维码(前端生成二维码:Qrcode)
  2. java---内存分析
  3. Lifelong SLAM 论文解读合集:针对长时间重复运行SLAM地图更新问题
  4. 终身规划A*算法(LPA*):Lifelong Planning A*
  5. 万木成林,我种了“Vue技能树”
  6. buildroot修改QT源码支持屏幕旋转
  7. 几何计算机软件,Geometry几何
  8. 第三方系统对接的设计思路(案例分享)
  9. 谈谈前华为荣耀软件测试工程师校招面试(已拿到offer)
  10. 一页技术:B站高可用架构实战总结