QuickHit项目

article/2025/10/12 11:01:54
玩家类:
package QuickHit;import java.util.Scanner;/*** * @author 呵呵* 玩家类**/
public class Player {//当前级别号private int levelNo;//当前级别积分private int currScore;//当前级别开始时间private long startTime=0;	//当前级别以用时间private int elapsedTime;public int getLevelNo() {return levelNo;}public void setLevelNo(int levelNo) {this.levelNo = levelNo;}public int getCurrScore() {return currScore;}public void setCurrScore(int currScore) {this.currScore = currScore;}public long getStartTime() {return startTime;}public void setStartTime(long startTime) {this.startTime = startTime;}public int getElapsedTime() {return elapsedTime;}public void setElapsedTime(long l) {this.elapsedTime = (int) l;}public Player(int levelNo, int currScore, long startTime, int elapsedTime) {super();this.levelNo = levelNo;this.currScore = currScore;this.startTime = startTime;this.elapsedTime = elapsedTime;}public Player() {super();// TODO Auto-generated constructor stub}
public	void play(){Game game=new Game(this);// game.setPlayer(this);Scanner scanner = new Scanner(System.in);//外层循环代表着等级for (int i = 0;i < LevelParam.levels.length ;i++ ){//玩家晋级levelNo += 1;//获得新的游戏开始时间startTime = System.currentTimeMillis();//每次晋级玩家积分清零currScore = 0;//内层循环代表着每个级别所需要玩的次数for (int j = 0;j < LevelParam.levels[i].getStrTime() ;j++ ){//系统生成的字符串String out = game.printStr();//玩家输入的字符串String in = scanner.next();//比较,产生结果game.printResult(out,in);}}}
}游戏类:
package QuickHit;import java.util.Random;/*** * @author 呵呵 * 游戏类*/
public class Game {private Player player;public Game(Player player) {super();this.player = player;}public String printStr(){//对字符串进行增删改查StringBuffer buffer = new StringBuffer();//创建随机数对象Random random = new Random();//循环生成对应玩家等级长度的字符串for (int i = 0;i < LevelParam.levels[player.getLevelNo() - 1].getStrLength();i++ ){//每次循环就产生一个随机数int rand = random.nextInt(6);//拼接产生随机数所对应的字符串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;}}}//输出所生成的字符串,让玩家可以对应着输入System.out.println(buffer.toString());//返回生成的字符串return buffer.toString();}//对比系统生成的字符串和玩家输入的字符串是否一样public void printResult(String out,String in){if(out.equals(in)){long currentTime=System.currentTimeMillis();//如果超时if((currentTime-player.getStartTime())/1000>LevelParam.levels[player.getLevelNo()-1].getTimeLimit()){System.out.print("你输入太慢了,已经超时,退出!");System.exit(1);//如果没有超时}else {//计算玩家当前积分player.setCurrScore(player.getCurrScore()+LevelParam.levels[player.getLevelNo()-1].getPerScore());//计算玩家以用时间player.setElapsedTime((int) ((currentTime - player .getStartTime()) / 1000)); //输出玩家当前级别,当前积分和以用时间System.out.println("输入正确,您的级别"+player.getLevelNo()+",您的积分"+player.getCurrScore()+",已用时间"+player.getElapsedTime()+"秒");//判断用户是否已经闯过最后一关并处理if(player.getLevelNo()==6){int score=LevelParam.levels[player.getLevelNo() - 1].getPerScore() * LevelParam.levels[player.getLevelNo() - 1].getStrTimes();if(player.getCurrScore()==score){System.out.println("恭喜您,通关成功!");}else{System.out.println("输入错误,退出!");System.exit(0);}} }}else{System.out.println("输入错误");System.out.println("正确的是"+out);System.exit(0);}}}级别类:
package QuickHit;
/*** * @author 呵呵*级别类*/
public class Level {private int levelNo; // 级别号private int strLength; // 各级别一次输出字符串的长度private int strTime; // 各级别输出字符                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 串的次数private int timeLimit; // 各级别闯关的时间限制private int perScore; // 各级别成功输入一次字符串后增加的分值public Level(int levelNo, int strLength, int strTime, int timeLimit,int perScore) {super();this.levelNo = levelNo;this.strLength = strLength;this.strTime = strTime;this.timeLimit = timeLimit;this.perScore = perScore;}public int getLevelNo() {return levelNo;}public void setLevelNo(int levelNo) {this.levelNo = levelNo;}public int getStrTime() {return strTime;}public void setStrTime(int strTime) {this.strTime = strTime;}public Level() {super();}public int getLeveNo() {return levelNo;}public void setLeveNo(int leveNo) {this.levelNo = levelNo;}public int getStrLength() {return strLength;}public void setStrLength(int strLength) {this.strLength = strLength;}public int getStrTimes() {return strTime;}public void setStrTimes(int strTimes) {this.strTime = strTimes;}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;}}package QuickHit;public class LevelParam {public final static Level levels[]=new Level[6];//对应六个级别static {levels[0]=new Level(1, 2, 10, 30,1);levels[1]=new Level(2, 3, 9, 26,2);levels[2]=new Level(3, 4, 8, 22,5);levels[3]=new Level(4, 5, 7, 18,8);levels[4]=new Level(5, 6, 6, 15,10);levels[5]=new Level(6, 7, 5, 12,15);}}Main方法:
package QuickHit;public class MyMain {/*** @param args*/public static void main(String[] args) {Player player = new Player();player.play();}}
效果图:

http://chatgpt.dhexx.cn/article/kDJNawfc.shtml

相关文章

quickAction

有一段时间没有上来折腾这个专题了&#xff0c;一来项目的确紧张&#xff0c;二来自己一惯是很懒的。今天想与大家分享的是一个QuickAction的东西&#xff0c;模样其实就是通讯录中点击头像后弹出的那个提供可操作按钮的窗口。 这个效果其实我们也用过&#xff0c;就是QuickCon…

快速检查(QuickCheck)(译)

source: http://www.jianshu.com/p/bb93972bac53 快速检查&#xff08;QuickCheck&#xff09;&#xff08;译&#xff09; 作者 低智商游戏 2016.02.01 00:26* 字数 4778 阅读 239 评论 0 喜欢 0 本文译自 objc.io出品的书籍《Functional Programming in swift》第六章&#…

quickbi使用

在maxcomputer中建表时应该注意四种建表方式不能使用临时查询的方式建立表结构&#xff0c;这种无法提交到生产环境&#xff0c;虽然在数据地图中可以查询到&#xff0c;但没提交生产环境中 暂时不知道这种情况&#xff1a;通过数据地图可以看到测试表通过临时查询简报方式也在…

阴阳师模型提取

0.声明 本文中的开发工具、第三方资源均用于学习用途&#xff0c;而非商业用途。本文中所有资源截止发稿时已全部删除 1.前言 最近一直在玩阴阳师。玩的时候我们不难观察到&#xff0c;现代游戏的制作中&#xff0c;画面、游戏体验都大大改善&#xff0c;除此之外&#xff0…

QUICKBMS 中文指南

我正打算做一个使用Quickbmsqu去解那些没有解包器的文档的教程。6 ?- s/ g/ B8 }, a$ ` 起步会很简单,然后越来越难,直到你学会并且编写你自己的脚本。 我们需要如下的四个工具: 1、16进制编辑器,比如HxD。(我用WINHEX) 2、Quick BMS http://aluigi.org/papers/quickbm…

quick bms的使用

下载工具quick bms&#xff0c;官网&#xff1a;http://aluigi.altervista.org/quickbms.htm 新建脚本 Script File -> New 选择你要操作的文件 Archive File -> Open Archive 选择输出目录 Folders -> Select Out Folder 编写脚本&#xff0c;点Quick Save保存脚…

乘方及方根运算电路

乘方及方根运算电路 图5.4-36是乘方运算电路。由于相乘器相移的影响&#xff0c;高次方运算会带来很大误差&#xff0c;通常串接的相乘器数量不超过2~3个。 图5.4-37是开方运算电路。要使此开方电路能稳定地工作&#xff0c;输入电压U1必须为负值。如果U1为正&#xff0c;将形…

比例运算电路(multisim实现)

目录 1.同相比例运算电路 ​ 输入与输出关系&#xff1a;​ 2.反相比例运算电路 输入与输出关系&#xff1a;​ 1.同相比例运算电路 仿真波形&#xff1a; 输入与输出关系&#xff1a; 2.反相比例运算电路 R2扫描波形 输入与输出关系&#xff1a;

模电总结二:基本运算电路

一、比例运算放大电路 二、加法运算放大电路 三、减法运算电路 四、积分运算电路 五、微分运算电路

大学模电实验合集丨实验六 比例求和运算电路

目录 一、实验目的 二、实验仪器 三、实验要求 五、根据实验报告回答下列问题 一、实验目的 1.掌握用集成运算放大电路组成比例、求和电路的特点及性能。 2.学会上述电路的测试和分析方法。 二、实验仪器 1.示波器 2.信号发生器 3.数字万用表 三、实验要求 在 MultiS…

【模拟电子技术Analog Electronics Technology 24】—— 信号的运算与处理(1):基本的运算电路分析

写在前面&#xff1a;在本篇博文中&#xff0c;我将分析几种常见的基本运算电路&#xff1a;比例运算电路&#xff0c;加减运算电路&#xff0c;微分和积分运算电路&#xff0c;指数和对数运算电路输入与输出的关系。但是&#xff0c;掌握单一的运算电路并不是我们的最终目的&a…

计算机系统基础(三)——运算电路基础

运算电路基础 数字逻辑电路基础运算电路基础数字逻辑电路基础 从C语言表达式到逻辑电路C语言支持的基本数据类型从C表达式到运算类指令从运算类指令到运算电路 C语言中各类运算算术运算按位运算逻辑运算移位运算截断和扩展运算 整数加减运算补码加减运算器无符号整数加法溢出判…

运算放大电路(比例运算电路)

0.反向比例运算电路 这是典型的并联反馈负反馈电路&#xff0c;输入电压U1通过电阻R作用于反向输入端&#xff0c;故输出电压与输入电压反向&#xff0c;同相输入端通过补偿电阻R接地&#xff0c;其值为U10时反相输入端的等效电阻&#xff0c;即各支路电阻的并联&#xff0c;因…

正弦运算电路

在很久之前&#xff0c;我在寻找一个能够进行正弦信号的电路。这个电路的意思不是说DDS正弦信号发生器。而是说&#xff0c;当输入一个信号x时&#xff0c;输出信号ysin⁡(x)&#xff0c;也就是说&#xff0c;输入信号xπ/2 V时&#xff0c;输出y1V&#xff0c;输入信号xπV时&…

模电笔记 基本运算电路

理想运放 “虚断” 理想运放的输入电阻为无穷大&#xff0c;流入两个输入端的电流近似为0 “虚短” 条件&#xff1a;理想运放工作于线性区&#xff08;存在负反馈&#xff09; 虚短&#xff1a;两个输入端的电位近似相等&#xff0c;净输入电压近似为0 比例运算电路 反…

实验二十一、积分运算电路的输出波形分析

一、题目 利用 Multisim 分析图1所示两个积分运算电路的输出波形&#xff0c;输入电压为 200 Hz、幅值为 1 V 的方波信号。 图 1 图1\,\, 图1 二、仿真电路 在 Multism 中搭建图1所示的两个电路&#xff0c;如图2所示。为了防止电路中的直流增益过大&#xff0c;故在电容上…

【反向和同向比例运算电路】

反向和同向比例运算电路 1.1 反相比例电路 1. 基本电路 电压并联负反馈输入端虚短、虚断   特点&#xff1a;   反相端为虚地&#xff0c;所以共模输入可视为0&#xff0c;对运放共模抑制比要求低   输出电阻小&#xff0c;带负载能力强   要求放大倍数较大时&#x…

减法器运算电路公式推导

前言 本人是菜鸟&#xff0c;有错误欢迎斧正&#xff0c;近期在看仪表放大器&#xff0c;其第二级放大电路就是一个减法器&#xff0c;大学教的我也忘的差不多了&#xff0c;于是开始网上冲浪&#xff0c;可是网上都是根据具体电路分析&#xff0c;或者分析的跳跃度很大&#…

数字电路基础(五)算术运算电路

数字电路基础&#xff08;五&#xff09;算术运算电路 一、二进制加法电路 1.半加器和全加器 &#xff08;1&#xff09;半加器 半加器是一个只考虑两个一位二进制数相加&#xff0c;而不考虑低位进位的运算电路。如下图所示是半加器的逻辑图&#xff1a; A A A和 B B B端…

积分运算电路的设计方法详细介绍

本文为大家介绍积分运算电路的设计。 积分运算电路的特性分析 下图为以集成运算放大器为核心元件的基本反相积分运算电路&#xff0c;输入电压uI经电阻R加至运算放大器的反相输入端&#xff0c;C为反馈电容&#xff0c;引入电压并联负反馈&#xff0c;R‘为平衡电阻&#xff…