1.描述这是个什么项目
1.打字通关游戏
2.考验键盘输入内容的速度和正确率
3.根据速度和正确率将玩家分为不同级别,级别越高,显示的字符数量越多,玩家输入正确的得分也越高
4.在规定时间内完成规定次数输入,且不做错,则升级,最高级别为6级
2.功能模块有哪些
主要功能分析
1.游戏输入字符串,主要步骤是生成固定但内容随机的字符串,同时向控制台输出生成的字符串并返回此字符串(必须返回,用于和玩家输入比较)。
2.确认输入并输出结果:根据玩家输入是否如正确输出不同结果。当输入正确并且未超时,要输出玩家的当前级别、当前积分和已用时间。如何计算玩家的当前级别、当前积分和已用时间是关键。
3.玩家玩游戏:游戏的6个级别可以通过循环实现,而每个级别中的多次字符串输出通过内部子循环实现,该控制功能放在Player类的play()方法中,每次玩家晋级后积分清零、计时清零。
页面分析
1.级别类(游戏关卡)
定义属性并使用封装、无参构造、有参构造
代码体现:
2.规则类(游戏规则)
使用数组,定义常量 --- 制定6个关卡中每个关卡的游戏规则
使用static{ },代表静态(只加载一次,独一份)
代码体现:
3.游戏玩家类
定义属性并使用封装、无参构造、有参构造
定义play()方法
创建game对象,this指当前玩家
使用for循环遍历,每过一关级别+1,计时清零,积分清零
嵌套for循环,输出字符串,输入字符串
代码体现:
4.游戏类
将Player对象作为调用的属性并封装、无参构造、有参构造
(1)游戏输出的字符串
获取用户当前级别对应的字符串长度(角标从0开始,所以要减1)
创建一个可以编译的字符串对象StringBuffer(控制显示出来的字符串)
创建一个随机对象random(生成随机数)
使用for循环输出要输出的字符串,产生随机数并拼接字符串
输出字符串,将StringBuffer类型的变量转变为String类型的变量(对象)--- toString
(2)游戏比对方法(输出的和输入的)
使用if比对输出的字符串和输入的字符串是否一致
使用if判断输入正确或者错误,正确继续游戏,错误直接退出
输入正确时,获取当前时间,定义一个long类型的currentTime变量(代表当前时间)
如果超时则退出,如果没有超时则计算分数、时间,并输出积分级别、时间
使用if判断用户是否闯过第6关,如果玩家达到最高分,则闯关成功
System.exit(0);退出虚拟机
代码体现:
5.测试类
使用main函数
实例化一个player对象,并调用Player类中的play方法
代码体现:
3.技术有哪些
1.面对对象的思想
2.类的封装(set、get方法)
3.无参、有参构造
4.构造方法的使用
5.this和static关键字的使用
6.对象的实例化
7.调用对象属性、方法
8.数组
9.for循环
10.if判断
11.switch语句
12.StringBuffer类