QuickHit 项目
package cn.javaoppday01; import java.util.Random; public class Game {
public Player player; public Game(Player player) {
this.player = player;
}
public void printResult(String out, String in) { long currentTime = System.currentTimeMillis(); if ((currentTime - player.getStartTime()) / > LevelParam.levels[player
.getLevelNo() - ].getTimeLimit()) {
System.out.println("你输入太慢了,已经超时,退出!");
System.exit();
} else if (!out.equals(in)) {
System.out.println("你输入错了了退出!");
System.exit();
} // 计算玩家当前积分
player.setCurScore(player.getCurScore()
+ LevelParam.levels[player.getLevelNo() - ].getPerScore());
System.out.println("下一关" + "您的当前积分是" + player.getCurScore()); } // 输出字符串,返回字符串用于和玩家输入比较。
public String printStr() {
StringBuffer buffer = new StringBuffer();
Random random = new Random();
// 通过循环生成要输出的字符串
for (int i = ; i < ; i++) {
int rand = random.nextInt(); // 产生随机数
// 根据随机数拼接字符串
switch (rand) {
case :
buffer.append(">");
break;
case :
buffer.append("<");
break;
case :
buffer.append("a");
break;
case :
buffer.append("b");
break;
case :
buffer.append("c");
break;
case :
buffer.append("d");
break;
case :
buffer.append("e");
break;
}
} return buffer.toString();
} }
游戏类
package cn.javaoppday01; public class Level { private int levelNo;//级别号
private int strLength;//各级别一次输出字符串的长度
private int stTtime;//各级别输出字符串次数
private int timeLimit;//各级别闯关限时的时间
private int perScore;//各级别成功输入的一次字符串后增加的分值
public int getLevelNo() {
return levelNo;
}
public void setLevelNo(int levelNo) {
this.levelNo = levelNo;
}
public int getStrLength() {
return strLength;
}
public void setStrLength(int strLength) {
this.strLength = strLength;
}
public int getStTtime() {
return stTtime;
}
public void setStTtime(int stTtime) {
this.stTtime = stTtime;
}
public int getTimeLimit() {
return timeLimit;
}
public void setTimeLimit(int timeLimit) {
this.timeLimit = timeLimit;
}
public int getPerScore() {
return perScore;
}
public void setPerScore(int perScore) {
this.perScore = perScore;
}
public Level(int levelNo,int strLength,int stTtime ,int timeLimit,int perScore){
this.levelNo=levelNo;
this.strLength=strLength;
this.stTtime=stTtime;
this.timeLimit=timeLimit;
this.perScore=perScore; }
}
等级类
package cn.javaoppday01; import java.util.Scanner; public class Player { private int levelNo;//级别号
private int curScore;//当前积分
private long startTime;//各级别开始时间
private int elapsedTime;//各级别已用时间
public int getLevelNo() {
return levelNo;
}
public void setLevelNo(int levelNo) {
this.levelNo = levelNo;
}
public int getCurScore() {
return curScore;
}
public void setCurScore(int curScore) {
this.curScore = curScore;
}
public long getStartTime() {
return startTime;
}
public void setStartTime(long startTime) {
this.startTime = startTime;
}
public int getElapsedTime() {
return elapsedTime;
}
public void setElapsedTime(int elapsedTime) {
this.elapsedTime = elapsedTime;
}
public void play(){
Game game =new Game(this);
Scanner input =new Scanner(System.in);
for(int i=;i<LevelParam.levels.length;i++){
this.levelNo+=;
this.startTime=System.currentTimeMillis();
this.curScore=;
for(int j=;j<LevelParam.levels[levelNo-].getStTtime();j++){
String outStr =game.printStr();
System.out.println(outStr);
String inStr =input.next();
game.printResult(outStr,inStr); } }
} }
玩家类
package cn.javaoppday01; public class LevelParam { public final static Level levels[] =new Level[];//对应六个级别
static{
levels[] =new Level(,,,,);
levels[] =new Level(,,,,);
levels[] =new Level(,,,,);
levels[] =new Level(,,,,);
levels[] =new Level(,,,,);
levels[] =new Level(,,,,); }
}
添加类
package cn.javaoppday01; public class MyMain {
public static void main(String[] args) {
Player play=new Player();
play.play();
}
}
Main方法测试类
QuickHit 项目的更多相关文章
- QuickHit项目(输出字符串游戏)
public class leve { private int leveNo; private int strLength; private int strTimes; private int tim ...
- 快速击键(MyEclipse编写的QuickHit项目)
public class Level { private int levelNo;// 各级别编号 private int strLength;// 各级别一次输出字符串的长度 private int ...
- 面向对象-QuickHit项目
package com.ketang.game; /** * 游戏级别类 * @author * */ public class Level { private int levelNo; //各级别编 ...
- 第五章项目:QuickHit
需求概述: 根据输入速率和正确率将玩家分为不同级别,级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高.如果玩家在规定时间内完成规定次数的输入,正确率达到规定要求,则玩家升级(为了简单起见, ...
- 05章项目: QuickHit快速击键
一.项目分析 根据输入速率和正确率将玩家分为不同等级,级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高.如果玩家在规定时间内完成规定次数的输入,正确率达到规定要求,则玩家升级.玩家最高级别 ...
- QuickHit游戏
一 项目需求 根据输入速率和正确率将玩家分为不同级别,级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高.如果玩家在规定时间内完成规定次数的输入,正确率达到规定要求,则玩家升级(为了简单起见 ...
- Fis3前端工程化之项目实战
Fis3项目 项目目录结构: E:. │ .gitignore │ fis-conf.js │ index.html │ package.json │ README.md │ ├─material │ ...
- 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新
本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...
- 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...
随机推荐
- https 学习笔记
参考 : http://www.cnblogs.com/JimmyZhang/archive/2008/10/02/Cryptograph.html https://blog.csdn.net/Jog ...
- sql server auto increment - trace flag 272
从 sql 2012 开始, 微软为了让 insert 时 auto increment 快一些,做了一个 cache 的机制. 这个机制虽然好,但是也有麻烦的情况,如果你的 sql 突然 resta ...
- lumerical中DEVICE和MODE模块的交互使用(真的很干货!!可以自信的说网上绝对找不到比我更详细的步骤了)
几个脚本文件很重要! Lumerical仿真流程: 一.DEVICE: (1).建模并且运行完之后,在脚本提示符下键入以下脚本行以运行plotDopingProfile.lsf如图1(文件名如果索引不 ...
- MySQL official tutorial
1.installation 2.setup environment variables add %/MySQL Server/bin to path. then restart cmd/powers ...
- python cook 整理
1.字符串分割 单个分隔符 'abc'.split('b') >> ['a','c'] 多个分隔符 re.split(r'[b,d]','abcde') >>&g ...
- Django分页器和自定义分页器
一.自定义分页器 import copy class Pagination(): def __init__(self,request,current_page,all_data_num,each_pa ...
- MySQL补充
1.mysql限制显示条目数:Limit, offset 图片网址:https://sqlbolt.com/lesson/filtering_sorting_query_results 实例: SEL ...
- 牛客寒假算法基础集训营6 I-wzoi
题目链接 分析:这个题本质上可以看成是一个括号匹配题,因为当出现00和11的时候,毫无疑问是前一天看题,后一天写题,这样可以得到最大的得分10 将全部00和11删掉后,就是交替出现的01串了 代码如下 ...
- Java对MongoDB中的数据查询处理
Java语言标准的数据库时MySQL,但是有些时候也会用到MongoDB,这次Boss交代处理MongoDB,所以讲代码以及思路记录下了 摸索的过程,才发现软件的适用还是很重要的啊!!! 我连接的Mo ...
- GSON使用之对特殊字符的转换的处理
很多人是在转换时特殊字符被替换成了unicode编程格式,而我碰到的类似,只不过是后台转换成json字符串到前端,前端解析时 '' 双引号和 / 斜杠被原样转换,冲突了json的关键字符,导致解析时提 ...