项目分析:
QuickHit 游戏考验你键盘输入的速度和准确性。
根据输入速度和正确率将玩家分为不同级别,级别越高,一次显示的字符数就越多,玩家
正确输入一次的得分也越高。如果玩家在规定时间内完成规定次数的输入,正确率达到
规定要求,则玩家升级(为了简单起见,规定用户错误输入一次,游戏结束)。玩家最
高级别为六级,初始级别一律为一级
QuickHit游戏的设计主要是面向对象的程序设计,用到了抽象,封装,继承和多态。
在做这道题的时候,首先你得理清楚它的思路,比如说它涉及到了对象,对象的属性,实现的方法 等等。
问题分析:
1. 需要使用到的类
名词有:游戏、输入速率、玩家、级别、一次显示的字符数、正确输入一次的得分、规定时间、规定次数、超时、玩家的积分和玩家用时等。
动词有 输出、输入、确认和显示
(2) 发现类的属性
玩家类 : 玩家当前级别号、玩家当前级别积分、当前级别开始时间和当前级别已用时间
如图:
(3) 发现类的方法
玩家类的方法:玩游戏 play()
如图:
(4) 优化
在 Game 类的 printResult(String out,String in)方法中,输出相应结果是肯定
会涉及 Player 类的信息,如当前级别号、当前级别积分、当前级别已用时间等,可以通
过把 Player 对象作为 Game 类的属性,轻松解决该问题。
Level 类不包含各个级别的具体参数信息,可以增加 LevelParam 类,在该类中创建一
个长度为六的 Level 数组,存放各个级别的具体参数信息。并把该数组使用 public
final static 修饰,可以直接通过类名来访问,却无法修改其值
如图:
2.主要功能分析
1) 游戏输出字符串
2) 确认输入并输出结果
3)玩家玩游戏
3.界面分析
如果玩家输入正确且未超时,输出玩家输入正确信息,并输出玩家当积分,当前级别和已用时间。如果玩家输入正确但超时,输出玩家超时信息,并退出系统
项目需求:
QuickHit 项目的执行步骤描述如下:
(1) 游戏根据玩家的级别在控制台输出指定数量字符。
(2) 玩家根据控制台输出输入相同字符,按 Enter 键确认。
(3) 游戏确认玩家输入是否正确。
(4) 如果输入错误,输出玩家输入错误提示,游戏非正常结束。
(5) 如果输入正确但超时,输出玩家速度太慢提示,游戏非正常结束。
(6) 如果输入正确且没有超时,输出玩家的积分、级别和用时信息。然后重复以上步骤,
继续输出、输入和确认。
(7) 玩家在规定时间内连续正确输入规定次数后,将显示玩家升级提示,游戏将重新计
时计分,将以此输出更多字符。六级玩家闯关成功,输出恭喜信息。游戏正常结束