QuickHit项目总结随记

实现思路:
提取出3个类,Game,Player,Level
Game类:
因要用到Player类中的对象或方法,需有Player类型对象,
有输出游戏字符串方法printStr():String
用循环产生随机字符串拼接到StringBuffer类对象buffer中
1. New StringBuffer对象
2. New Random对象产生随机数
3. For循环
4. 循环体内产生随机数,用switch方法按随机数拼接StringBuffer字符串
5. 输出拼接后的字符串并返回该字符串
涉及知识StringBuffer类用法,for循环,switch

有判断方法result(String out,String in):void
1. 判断结果是否一致
If(out.equal(in)){
If(判断是否超时){
未超时则显示当前玩家积分,时长,级别等信息
}else{
提示超时并结束游戏
}
}else{
输入的字符串不一致,提示错误并结束游戏
}
涉及知识点:字符串对比,if-else判断,时间戳(生疏知识点!)

Player类:
玩家级别levelNo:int
开始游戏时间startTime:long
积分score:int
每关游戏持续时间elapseTime:long

对应的setter方法和getter方法
玩游戏的方法play():void
1. 需要Game类对象
2. 创建输入对象 Scanner方法
3. 开始游戏for循环实现循环游戏
4. 在循环内记录每次开始输入的时间戳—–然后用结束时的时间戳减去开始就是输入用时
5. 调用Game下的printSt()方法生产随机字符串,result(String oput,String in)方法对比

Level类:
关卡编号levelNo:int
对应关卡字符串长度strlength:int
对应关卡时间限制timeLimit:int
对应关卡重复次数strTime:int
对应关卡奖励分数perScore:int

构造函数给上面的变量一一赋值

相应的setter方法和getter方法

这时候需要一个LevelInitial类初始化一个Level数组 需用到static{} 静态初始化块

问题总结:
本项目大部分代码实现逻辑相对简单清晰,但是因为时间戳了解不多,所以在怎么判断键盘输入用了多长时间这里卡了很久,在这个项目之后需要花时间去了解Java中关于时间格式的知识

猜你喜欢

转载自blog.csdn.net/yzccc/article/details/53439889