java数组小游戏——数三退一
Count3Quit.java
//数3退1,小游戏算法测试 /* 若干个人围成一圈,从第一个人开始数,数到第三个人,第三个人退出, 继续从1开始数,到3退出 */ public class Count3Quit { public static void main(String[] args) { //500个人拉成一圈,用数组模拟 boolean[] arr = new boolean[500]; for(int i=0; i<arr.length; i++) { arr[i] = true; } int leftCount = arr.length;//还剩多少个人 int countNum = 0;//计数器 int index = 0;//第0个人 while(leftCount > 1) { if(arr[index] == true) { countNum ++; if(countNum == 3) { countNum = 0; arr[index] = false; leftCount --; } } index ++; //如果index等于arr.length,index回0 if(index == arr.length) { index = 0; } } //找到剩下为true的数 for(int i=0; i<arr.length; i++) { if(arr[i] == true) { System.out.println(i);//i=435,下标为435,为第436个人 } } } }
F:\java>javac Count3Quit.java F:\java>java Count3Quit 435 F:\java>
Count3Quit2.java
/* 面向对象的写法: 数三退一,500个小孩围成一圈 */ public class Count3Quit2 { public static void main(String[] args) { //面向对象的写法 KidCircle kc = new KidCircle(500); int countNum = 0; Kid k = kc.first; while(kc.count > 1) { countNum ++; if(countNum == 3) { countNum = 0; kc.delete(k); } k = k.right; } System.out.println(kc.first.id); } } //小孩类 class Kid { int id; Kid left;//小孩的左边 Kid right;//小孩的右边 } //小孩围成的圈 class KidCircle { int count = 0; Kid first, last;//开始的小孩和结束的小孩 KidCircle(int n) { for(int i=0; i<n; i++) { add(); } } //添加一个小孩 void add() { Kid k = new Kid(); k.id = count; if(count <= 0) { first = k; last = k; k.left = k; k.right = k; } else { last.right = k; k.left = last; k.right = first; first.left = k; last = k; } count ++; } //删除一个小孩 void delete(Kid k) { if(count <= 0) { return; } else if (count == 1) { first = last = null; } else { k.left.right = k.right; k.right.left = k.left; if(k == first) { first = k.right; } else if( k == last) { last = k.left; } } count --; } }
F:\java>javac Count3Quit2.java F:\java>java Count3Quit2 435 F:\java>
相关推荐
在本项目中,我们探讨的是一个使用Java编程语言实现的经典电脑游戏——扫雷。这个扫雷游戏是基于Java的基础语法和面向对象编程理念构建的,旨在帮助开发者熟悉和巩固Java编程技能,同时提供一个趣味性的实践平台。 ...
"JAVA版扫雷游戏——仿XP下的扫雷"是一个很好的实践项目,它允许开发者用Java语言来实现经典电脑游戏——扫雷。下面将详细介绍这个项目的相关知识点。 1. **Java基础** - **类与对象**:扫雷游戏的主体是基于类和...
### 数组与字符串知识点 ...综上所述,该文档涵盖了数组和字符串的基础操作,以及一个实际应用案例——猜密码小游戏。这些知识点不仅有助于初学者理解Java中数组和字符串的使用方法,也为进一步学习提供了实践基础。
### JAVA图形界面程序——汉诺塔演示程序代码 #### 概述 本篇文章将详细介绍一个用Java语言编写的汉诺塔问题的图形界面演示程序。汉诺塔问题是一种经典的递归算法实例,常用于教授递归思想。在这个程序中,我们将...
【Android小游戏——四棋】 四棋,又称为“井字游戏”或“圈圈叉叉”,是一种简单但富有策略性的双人对弈游戏。在这个Android版本的四棋游戏中,玩家可以选择“X”或“O”作为自己的棋子,并在3x3的棋盘上尝试连成...
本项目是一个基于Java编程语言的小型游戏——坦克大战,非常适合初学者进行实践和学习。通过参与这个项目,你可以深入理解Java编程的基础知识,并逐步提升编程技能。以下是对该项目涉及的主要Java知识点的详细解析:...
【Java五子棋小游戏】是一款基于Java编程语言开发的简单娱乐项目,旨在提供一个100x100网格的棋盘,供玩家体验五子棋的乐趣。在这款游戏中,两个玩家轮流在棋盘上放置黑白棋子,目标是形成任意方向(横、竖、斜)上...
Java小游戏——俄罗斯方块是一款基于Swing图形用户界面开发的经典休闲游戏。Swing是Java标准库中的一个组件,用于创建桌面应用程序,它提供了丰富的UI控件和事件处理机制,非常适合开发这种小型游戏。 在这款游戏中...
这个Java五子棋小游戏项目涵盖了GUI设计、游戏逻辑实现以及多媒体处理等多个方面,对于初学者来说,是学习和实践Java编程技术的一个良好实例。通过分析和理解这些代码,不仅可以巩固Java基础,还能了解如何在实际...
本项目“使用Java开发的游戏项目源码”提供了一个基于二维数组实现的游戏——推箱子,适合用于Java编程的学习者进行课程设计或毕业设计。通过分析这个游戏,我们可以深入理解Java编程在游戏开发中的应用,以及二维...
《BombMan——实时联机对战小游戏》是基于Java Swing技术开发的一款小型的多人在线对战游戏。在这款游戏中,玩家可以与朋友们实时互动,体验炸弹人风格的竞技乐趣。Swing是Java的一个图形用户界面(GUI)工具包,用于...
《2048小游戏源码解析——基于Java编程语言》 2048是一款深受玩家喜爱的数字合成游戏,它的核心玩法是通过上下左右滑动屏幕,使相同数字的方块合并,最终目标是达到2048这个数值。这款小游戏的源码采用Java编程语言...
Java小游戏——基于Swing编程的俄罗斯方块 Java是一种广泛使用的面向对象的编程语言,它以其跨平台性、丰富的库支持以及强大的性能受到开发者们的喜爱。在这个“java小游戏_swing编程_俄罗斯方块”项目中,开发者...
本篇将深入探讨一款由Java语言编写的经典小游戏——俄罗斯方块,旨在解析其背后的编程思想和技术要点。 首先,我们关注的是“游戏”这一标签。游戏开发涉及到许多关键元素,如图形界面、用户交互、逻辑控制等。...
《2048小游戏源码解析——Java编程实践》 2048是一款风靡全球的数字合并益智游戏,其简洁的界面和富有挑战性的玩法吸引了无数玩家。本篇文章将深入探讨用Java语言编写的2048小游戏源码,帮助读者理解游戏的核心逻辑...
在这个Java实现的井字棋项目中,我们可以学习到如何构建一个基本的命令行界面游戏,这对于Java编程初学者来说是一个很好的练习。 首先,我们需要了解Java的基础知识,包括类、对象、方法、变量等概念。在这个游戏中...
"Java小游戏-推箱子源码"是一个基于Java实现的经典逻辑游戏——推箱子的源代码实例。推箱子游戏起源于1981年,以其简单的规则和复杂的策略性闻名,是很多程序员学习游戏编程的入门项目。 源码分析: 1. **项目结构*...
根据给定的信息,我们可以总结出以下关于“Java应用程序——纸牌游戏发牌实现”的相关知识点: ### 一、概述 本Java程序实现了一个简单的纸牌游戏发牌逻辑。该程序利用面向对象的思想,通过定义`Card`类来表示每张...
在本项目中,"学习JAVA编程,完成作业——编一个控制台梭哈游戏.zip",开发者采用Java语言实现了一个基于控制台的梭哈(Poker)游戏。这是一门编程课程的作业,目的是让学生掌握Java的基本语法、面向对象编程概念...