QuickHit游戏
需求
游戏功能
游戏玩家类
/**
* 玩家类
*
* @author hp
*
*/
public class Player {
private int levelNo;// 玩家当前级别
private int currrScore;// 玩家积分
private long startTime;// 开始时间
private long elapsedTime;// 结束时间
public Player() {
super();
// TODO 自动生成的构造函数存根
}
public Player(int levelNo, int currrScore) {
super();
this.levelNo = levelNo;
this.currrScore = currrScore;
}
public int getLevelNo() {
return levelNo;
}
public void setLevelNo(int levelNo) {
this.levelNo = levelNo;
}
public int getCurrrScore() {
return currrScore;
}
public void setCurrrScore(int currrScore) {
this.currrScore = currrScore;
}
public long getStartTime() {
return startTime;
}
public void setStartTime(long startTime) {
this.startTime = startTime;
}
public long getElapsedTime() {
return elapsedTime;
}
public void setElapsedTime(long elapsedTime) {
this.elapsedTime = elapsedTime;
}
/**
* 玩游戏
*/
public void play() {
}
}
游戏级别类
/**
* 级别类
*
* @author hp
*
*/
public class Level {
private int levelNo;// 各级别号
private int strLength;// 各级别一次输出字符串的长度
private int strTime;// 各级别输出字符串的次数
private int timeLinmit;// 各级别闯关的时间限制
private int perScore;// 各级别正确输入一次得分
public Level() {
super();
// TODO 自动生成的构造函数存根
}
public Level(int levelNo, int strLength, int strTime, int timeLinmit,
int perScore) {
super();
this.levelNo = levelNo;
this.strLength = strLength;
this.strTime = strTime;
this.timeLinmit = timeLinmit;
this.perScore = 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 getStrTime() {
return strTime;
}
public void setStrTime(int strTime) {
this.strTime = strTime;
}
public int getTimeLinmit() {
return timeLinmit;
}
public void setTimeLinmit(int timeLinmit) {
this.timeLinmit = timeLinmit;
}
public int getPerScore() {
return perScore;
}
public void setPerScore(int perScore) {
this.perScore = perScore;
}
}
游戏级别初始化类
/**
* 各级别具体参数信息
*
* @author hp
*
*/
public class LevelParam {
public final static Level[] level = new Level[6];
static {
level[0] = new Level(1, 2, 10, 30, 1);
level[1] = new Level(2, 3, 9, 26, 2);
level[2] = new Level(3, 4, 8, 22, 5);
level[3] = new Level(4, 5, 7, 18, 8);
level[4] = new Level(5, 6, 6, 15, 10);
level[5] = new Level(6, 7, 5, 12, 15);
}
}
游戏类
import java.util.Random;
/**
* 游戏类
*
* @author hp
*
*/
public class Game {
Player p = new Player();// 得到玩家当前属性
public Game(Player p) {
super();
this.p = p;
}
/**
* 输出字符串
*
* @return
*/
public String printStr() {
StringBuffer buffer = new StringBuffer();
Random random = new Random();
LevelParam lp = new LevelParam();
int num = lp.level[p.getLevelNo() - 1].getStrLength(); // 获得账号的级别输入一次字符串的长度
for (int i = 0; i < num; i++) {
int rand = random.nextInt(num);
switch (rand) {
case 0:
buffer.append(">");
break;
case 1:
buffer.append("<");
break;
case 2:
buffer.append("*");
break;
case 3:
buffer.append("&");
break;
case 4:
buffer.append("%");
break;
case 5:
buffer.append("#");
break;
}
}
return buffer.toString();
}
/**
* 输出比较结果
*/
public void printResult(String out, String in, long currentTime1,
long currentTime) {
if (out.equalsIgnoreCase(in)) {
boolean flag = false;
p.setStartTime(currentTime1);
p.setElapsedTime(currentTime);
if ((currentTime1 - currentTime) / 1000 > LevelParam.level[p
.getLevelNo() - 1].getTimeLinmit()) {
System.out.println("你输入太慢了,已经超时,退出!");
System.exit(1);
} else {
p.setCurrrScore(p.getCurrrScore()
+ LevelParam.level[p.getLevelNo() - 1].getPerScore());
}
} else {
System.out.println("输入错误,退出!");
System.exit(1);
}
}
}
游戏测试、主函数类
/**
* 游戏开始类
*
* @author hp
*
*/
public class Strat {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Player p = new Player(1, 2); // 得到玩家当前属性
Game game = new Game(p);
long currentTime1 = System.currentTimeMillis();
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 3; j++) {
String out = game.printStr();
System.out.println(out);
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
String in = sc.next();
long currentTime = System.currentTimeMillis();
game.printResult(out, in, currentTime1, currentTime);
System.out.println("输入正确,您的积分" + p.getCurrrScore() + ",您的级别"
+ p.getLevelNo() + ",已用时间"
+ (p.getElapsedTime() - p.getStartTime()) / 1000);
}
p.setLevelNo(p.getLevelNo() + 1);// 晋级
System.out.println("恭喜晋级为" + p.getLevelNo() + "级!");
p.setCurrrScore(0);
if (p.getLevelNo() > 6) {
System.out.println("您已满级通关!");
break;
}
}
}
}
运行截图