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跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...
随机推荐
- vue 脚手架搭建新项目以及element-ui等vue组件的使用
vue快速搭建项目(前提是你的电脑已经安装了node的环境和vue脚手架安装,不会的自行百度) 1:打开终端: 这里说下此时位置是在User下的lijuntao文件夹下面,我一般会在桌面新建一个文件夹 ...
- css各种练习
2017年10月22日 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- 第 8 章 容器网络 - 051 - 在 overlay 中运行容器
在 overlay 中运行容器 运行一个 busybox 容器并连接到 ov_net1: docker run -itd --name bbox1 --network ov_net1 busybox ...
- photoshop怎么旋转图片
Adobe Photoshop 是一款为人熟知的功能强大的图像处理软件.在这里简单介绍一下如何在photoshop里进行图像的旋转. 工具/原料 Adobe Photoshop 软件,图像一张 方 ...
- Server SQL Modes
The MySQL server can operate in different SQL modes, and can apply these modes differently for diffe ...
- 算法:最短路径之弗洛伊德(Floyd)算法
https://cloud.tencent.com/developer/article/1012420 为了能讲明白弗洛伊德(Floyd)算法的主要思想,我们先来看最简单的案例.图7-7-12的左图是 ...
- DAG最长路问题 hdu-1224
用DFS+记忆化写了一下,拓扑排序+DP的我还没弄明白.据说Codeforces 721C就是这类题目,因为有费用限制,DFS不太好写,有时间把DP法想明白来. #include <iostre ...
- python记录_day08
今日内容:文件操作 一.文件基本操作 f = open("文件路径和文件名", mode=" r", encoding="utf-8" ) ...
- Python之深浅copy与字符编码
一.深浅copy 1. 首先看赋值运算 l1 = [1,2,3,['barry','alex']] l2 = l1 l1[0] = 111 print(l1) # [111, 2, 3, ['barr ...
- appium自动化测试(四)
一. 获取webview的html页面 方法一: 1. 获取webview中对应的html页面 谷歌浏览器中输入地址:chrome://inspect(第一次使用要FQ) 前提:手机开启USB调试模式 ...