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 项目的更多相关文章

  1. QuickHit项目(输出字符串游戏)

    public class leve { private int leveNo; private int strLength; private int strTimes; private int tim ...

  2. 快速击键(MyEclipse编写的QuickHit项目)

    public class Level { private int levelNo;// 各级别编号 private int strLength;// 各级别一次输出字符串的长度 private int ...

  3. 面向对象-QuickHit项目

    package com.ketang.game; /** * 游戏级别类 * @author * */ public class Level { private int levelNo; //各级别编 ...

  4. 第五章项目:QuickHit

    需求概述: 根据输入速率和正确率将玩家分为不同级别,级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高.如果玩家在规定时间内完成规定次数的输入,正确率达到规定要求,则玩家升级(为了简单起见, ...

  5. 05章项目: QuickHit快速击键

    一.项目分析 根据输入速率和正确率将玩家分为不同等级,级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高.如果玩家在规定时间内完成规定次数的输入,正确率达到规定要求,则玩家升级.玩家最高级别 ...

  6. QuickHit游戏

    一 项目需求 根据输入速率和正确率将玩家分为不同级别,级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高.如果玩家在规定时间内完成规定次数的输入,正确率达到规定要求,则玩家升级(为了简单起见 ...

  7. Fis3前端工程化之项目实战

    Fis3项目 项目目录结构: E:. │ .gitignore │ fis-conf.js │ index.html │ package.json │ README.md │ ├─material │ ...

  8. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  9. 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目

    最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...

随机推荐

  1. CRC分段校验

    crc16 modbus分段校验码: const uint8_t ModbusCRCHighTab[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x ...

  2. 雷林鹏分享:C# 封装

    C# 封装 封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中".在面向对象程序设计方法论中,封装是为了防止对实现细节的访问. 抽象和封装是面向对象程序设计的相关特性. ...

  3. 【转】 strrchr()函数---C语言

    转自:https://baike.baidu.com/item/strrchr/4621437?fr=aladdin   函数名称: strrchr 函数原型:char *strrchr(const ...

  4. ssh repo ----> struts+hibernate+spring( jar包和源码)各版本下载链接

    struts http://archive.apache.org/dist/struts/ hibernate http://hibernate.org/orm/releases/5.0/ sprin ...

  5. node初学者笔记

    helloworld 编辑一个js文件——在该文件所属目录打开命令行cmd——输入'node -v可查看版本——输入'node  00-hellowolrd.js(你的js名字)' 或者直接在文件所属 ...

  6. 微擎查询SQL语句常用

    pdo_fetch:根据SQL语句,查询一条记录 array | boolean pdo_fetch($sql, $params = array()); // :uid 是参数的一个点位符,没有使用引 ...

  7. php正则的使用

    函数 描述 preg_filter 执行一个正则表达式搜索和替换 preg_grep 返回匹配模式的数组条目 preg_last_error 返回最后一个PCRE正则执行产生的错误代码 preg_ma ...

  8. CSS之transform-origin属性

    设置旋转元素的基点位置 语法 transform-orign:0 100% 0 transform-origin: x-axis y-axis z-axis; x-axis 定义视图被置于 X 轴的何 ...

  9. MySql之安装以及设置密码等

    1.MySQL的下载安装.简单应用及目录介绍 1.下载安装 windows10的:https://www.cnblogs.com/clschao/articles/9916971.html linux ...

  10. python记录day24 模块的语法

    使用模块的两种方式: import xxx from xxx import xxx 使用模块的优点: 1.实现代码的重用 2.可以把代码分类 一.import 导入模块的时候系统会做三件事 1.先去s ...