【QuickHit项目实例】

关于java面向对象QuickHit项目实例

Game类:用来得到随机出现的字符串(随机打印的字符串,然后玩家进行输入字符串)

public class Game {
	private String sbString;
	Random random = new Random();

	public String player(int level) {
		sbString="";
		for (int i = 0; i < level+1; i++) {
			int rand = random.nextInt(level+1);
			switch (rand) {
			case 0:
				sbString += "1";
				break;
			case 1:
				sbString += "2";
				break;
			case 2:
				sbString += "3";
				break;
			case 3:
				sbString += "4";
				break;
			case 4:
				sbString += "5";
				break;
			case 5:
				sbString += "6";
				break;

			default:
				break;
			}
		}
		return sbString;
	}}

Level类:进行判断是否输入正确,进行判断时间以及判断级别

public class Level {
	Game game = new Game();
	Scanner san = new Scanner(System.in);
	Date dt1 = new Date();
	Date dt2;
	int num = 0;
	int level = 1;

	public void level() {
		do {
			dt2 = new Date();
			if (level==6) {
				System.out.println("已通过!!!");
				break;
			}
			if (num == 4) {
				num = 0;
				level++;
			}
			if (dt1.getSeconds() > dt2.getSeconds()) {
				if (dt1.getSeconds() - dt2.getSeconds() > 30) {
					System.out.println("超时!!!");
					break;
				} else {
					String sbString = game.player(level);
					System.out.println(sbString);
					String newString = san.next();
					if (newString .equals(sbString) ) {
						System.out.println("输入正确");
						num++;
					} else {
						System.out.println("输出错误");
						break;
					}
				}
			} else if (dt1.getSeconds() < dt2.getSeconds()) {
				if (dt2.getSeconds() - dt1.getSeconds() > 30) {
					System.out.println("超时!!!");
					break;
				} else {
					String sbString = game.player(level);
					System.out.println(sbString);
					String newString = san.next();
					if (newString.equals(sbString)) {
						System.out.println("输入正确");
						num++;
					} else {
						System.out.println("输出错误");
						break;
					}
				}
			}
		} while (true);

	}}

Test:测试类(main方法)进行运行代码

public class Test {

	public static void main(String[] args) {
		Level level=new Level();
		level.level();
	}
}

  

时间: 2024-08-13 13:31:47

【QuickHit项目实例】的相关文章

跟王老师学Java三大特性(一):案例 QuickHit:需求分析

项目案例:QuickHit:需求分析 主讲教师:王少华   QQ群号:483773664 学习目标 学会用面向对象思想来进行需求分析 一.需求 根据输入速率和正确率将玩家分为不同级别 级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高 规定时间内完成规定次数的输入,正确率达到规定要求,则升级 玩家最高级别为6级.初始级别一律为1级 用户错误输入一次,游戏结束 二.面向对象分析 (一) 发现类 玩家(Player)类 游戏(Game)类 级别(Level)类 (二)发现类的属性 1.玩家

跟王老师学Java三大特性(二):案例 QuickHit:游戏输出字符串

案例 QuickHit:游戏输出字符串 主讲教师:王少华   QQ群号:483773664 学习目标 完成游戏输出字符串 一.需求说明 在控制台输出随机字符串 二.思路分析 生成字符串 输出字符串 返回字符串 三.难点提示 Game类中的player属性,代表玩家,查询player的级别号,根据级别号到LevelParam类中获取该级别的字符串长度 字符串长度固定可以通过for循环来实现,而随机内容可以通过获取随机数,而不同随机数对应不同字符来实现 四.参考代码 1 2 3 4 5 6 7 8

跟王老师学Java三大特性(四):案例 QuickHit:玩家玩游戏

案例 QuickHit:玩家玩游戏 主讲教师:王少华   QQ群号:483773664 学习目标 完成Player类中的play方法 一.需求说明 玩家玩游戏 二.思路分析 创建Game对象并传入player属性: 外层循环(循环次数是6,每循环一次玩家级别升一级) 晋级: 积分清零.计时清零: 内层循环(循环次数是该级别的strTime,每循环一次完成一次人机交互) 游戏输出字符串: 玩家输入字符串: 游戏判断玩家输入并输出相应结果. 三.参考代码 1 2 3 4 5 6 7 8 9 10 1

[转]vue全面介绍--全家桶、项目实例

慢慢了解vue及其全家桶的过程 原文http://blog.csdn.net/zhenghao35791/article/details/67639415 简介 “简单却不失优雅,小巧而不乏大匠”. 2016年最火的前端框架当属Vue.js了,很多使用过vue的程序员这样评价它,“vue.js兼具angular.js和React.js的优点,并剔除了它们的缺点”.授予了这么高的评价的vue.js,也是开源世界华人的骄傲,因为它的作者是位中国人–尤雨溪(Evan You). Vue.js 是一个J

AngularJS进阶(三十九)基于项目实例解析ng启动加载过程

基于项目实例解析ng启动加载过程 前言 在AngularJS项目开发过程中,自己将遇到的问题进行了整理.回过头来总结一下angular的启动过程. 下面以实际项目为例进行简要讲解. 1.载入ng库 2.等待,直到DOM树构造完毕. 3.发现ng-app,自动进入启动引导阶段. 4.根据ng-app名称找到相应的路由. 5.加载默认地址. 6.Js顺序执行,加载相应模版页 sys_tpls/home.html 7.在此,可以看到index路由中只是填充了ui-view为sys_login的div模

【项目实例】android开发游戏音效代码实例

//音效的音量 int streamVolume; //定义SoundPool 对象 private SoundPool soundPool; //定义HASH表 private HashMap<Integer, Integer> soundPoolMap; /*************************************************************** * Function: initSounds(); * Parameters: null * Returns

第五章项目:QuickHit

需求概述: 根据输入速率和正确率将玩家分为不同级别,级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高.如果玩家在规定时间内完成规定次数的输入,正确率达到规定要求,则玩家升级(为了简单起见,规定用户只要错误一次,则游戏结束).最高为6级,刚开始一律1级. 案例覆盖的技能点: 面向对象设计的思想 使用类图理解类的关系 类的封装 构造方法的使用 this和static关键字的使用 需要用到的类: 玩家(Player)类:当前级别号(levelNo),当前级别积分(currScore),当前

spring框架整合ibatis的项目实例代码

原创整理不易,转载请注明出处:spring框架整合ibatis的项目实例代码 代码下载地址:http://www.zuidaima.com/share/1780211932679168.htm 这两天一直在研究ibatis与spring的整合 一个小小的demo搞的我头晕目眩的,但程序一旦跑起来了,突然有一种豁然开朗,重见天日,感觉生活很美好的感觉!,也许,这就是那一行行的代码带给我们的不同享受吧.呵呵,废话就不多说了. 在此先引用几句别人的资料... Spring通过DAO模式,提供了对iBA

QuickHit游戏

一 项目需求 根据输入速率和正确率将玩家分为不同级别,级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高.如果玩家在规定时间内完成规定次数的输入,正确率达到规定要求,则玩家升级(为了简单起见,规定用户只要错误输出一次,则游戏结束).玩家最高级别为6级,初始级别一律为一级. 项目所覆盖的知识点: ①面向对象设计的思想. ②使用类图理解类的关系 ③类的封装 ④构造方法的使用 ⑤this和static关键字的使用 运行效果图: 玩家输入正确的界面 玩家输入错误的界面 玩家输入超时的界面 二