杀人游戏Java代码
一个小游戏,题目如下:
题目是这样的:有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代码相关推荐
- 五子棋游戏Java代码简单实现(含活动图和类图设计)
五子棋游戏Java代码简单实现(含活动图和类图设计) 文章目录 五子棋游戏Java代码简单实现(含活动图和类图设计) 活动图设计 类图设计 代码实现 总结 OOA和OOD设计 代码设计 可改进部分 活 ...
- java猜拳游戏代码_猜拳游戏 - java代码库 - 云代码
[java]代码库public class Computer { String name; int score; public int showfist(){ int quan; quan=(int) ...
- 贪吃蛇小游戏--Java代码
贪吃蛇游戏 图纸设计 按帧动 静态页面绘制 让小蛇动起来 吃豆豆 积分展示 展望 难点:计算坐标 package comleo.snake;import javax.swing.*;public cl ...
- 筹码游戏java代码编写,PAT(Basic Level) 乙级练习题 ------ 1071 小赌怡情 java
1071 小赌怡情 题目: 常言道"小赌怡情".这是一个很简单的小游戏:首先由计算机给出第一个整数:然后玩家下注赌第二个整数将会比第一个数大还是小:玩家下注 t 个筹码后,计算机给 ...
- 贪吃蛇游戏java代码_Java实现贪吃蛇游戏
最近JAVA和JSwing上手练习了一下贪吃蛇,供大家参考,具体内容如下 欢迎交流和加入新的内容 用到了JSwing,下面是一些具体的思路 实现 * 蛇: 采用单链表记录首尾,整个蛇被分为lattic ...
- 扑克牌游戏java代码_java实现简易扑克牌游戏
本文实例为大家分享了java实现扑克牌游戏的具体代码,供大家参考,具体内容如下 游戏功能描述 1.创建一副扑克牌: 包括四种花色:黑桃,红桃,梅花,方片 包括十三种点数:2-10,J,Q,K,A 2. ...
- 小学数学闯关游戏 java代码_Java语言实现小学数学练习
package per.java.shejiti; import java.io.*; import java.util.ArrayList; import java.util.Collections ...
- 24点游戏java代码 中国开源社区_编程之美 1.16 24点游戏
24点游戏大家都知道:4张牌,可以进行+ - * / 四种运算,可以使用括号,每个牌用一次,任意组合构造表达式使结果为24. 扩展问题:n个整数,四种运算,可使用括号,每个数字使用一次,使表达式结果为 ...
- 黑白块游戏java代码_用java做的一个小游戏—黑白反斗棋(适合菜鸟)
用Java做的一个小游戏,黑白反斗棋,我玩过了5*5和10*10的.是学习之后做的,不是自己原始开发的. import java.awt.Color; import java.awt.FlowLayo ...
最新文章
- TLB的作用及工作原理
- CPU调度(CPU Scheduling)
- 动圈耳机振膜_耳机中的动圈、动铁、圈铁都是什么意思 买哪种最好?
- php获取url文件大小,PHP通过URL获取文件大小
- 组件文件已损坏或android内部模块,android - Android Q更新后,模块化系统组件在托管配置文件中不可用 - 堆栈内存溢出...
- Django简介以及安装
- PHP中的中文截取乱码问题_gb2312_utf-8
- python字符串添加成员_Python - 字符串的操作方法
- iOS开发那些事-iOS常用设计模式–委托模式案例实现
- python绘制星空图_【Python】基于某些列删除数据框中的重复值
- Lua,Lua API,配置文件
- Spring(三)Bean继续入门
- 小米路由器r3gv2/r4a Lean的OpenWrt固件
- ACE admin 后台管理框架
- Visual C++鼠标画线操作
- 基于go websocket写一个聊天室
- 使用python实现往手机发短信(基于twilio)
- 详细介绍CoinList 2022 年夏季种子项目, web3概念最亮眼!
- CAcls命令在提权中的使用
- IDL转换BSQ格式至BIL