java实现快速打字游戏
作者:CYH_progress 发布时间:2022-11-05 11:16:38
标签:java,打字游戏
本文实例为大家分享了java实现打字游戏的具体代码,供大家参考,具体内容如下
import java.util.Random;
import java.util.Scanner;
public class Game {
public Game(Player player) {
}
public Game() {
}
public String printStr(Player player) {
StringBuffer a=new StringBuffer();
for(int i=0;i<LevelParam.levels[player.getLevelNo()-1].getStrLength();i++) {
int num=(int)(Math.random()*(7));
switch(num) {
case 1:
a.append(">");
break;
case 2:
a.append("<");
break;
case 3:
a.append("+");
break;
case 4:
a.append("-");
break;
case 5:
a.append("*");
break;
case 6:
a.append("/");
break;
case 0:
a.append("=");
break;
}
}
String str=a.toString();
System.out.println(str);
return str;
}
public void printResult(Player player) {
String num1=this.printStr(player);
Scanner input=new Scanner(System.in);
player.setStartTime();
String num2=input.next();
long currentTime=System.currentTimeMillis();
player.setElapsedTime(currentTime,player.getStartTime());
if (num1.equals(num2)) {
if ((currentTime-player.getStartTime())/1000>LevelParam.levels[player.getLevelNo()-1].getTimeLimit()) {
System.out.println("你输入太慢了,输入超时,退出。");
System.exit(1);
} else {
player.setCurScore(player);
System.out.println("输入正确,您的级别"+player.getLevelNo()+",您的积分"+player.getCurScore()+",已用时"+player.getElapsedTime()+"秒。");
}
}else{
System.out.println("输入错误,退出!");
System.exit(1);
}
}
}
public class Level {
private int levelNo;//各级别编号
private int strLength;//各级别一次输出字符串的长度
private int strTimes;//各级别输出字符串的次数
private int timeLimit;//各级别闯关的时间限制
private int perScore;//各级别正确输入一次的得分
public int getLevelNo() {
return levelNo;
}
public int getStrLength() {
return strLength;
}
public int getStrTimes() {
return strTimes;
}
public int getTimeLimit() {
return timeLimit;
}
public int getPerScore() {
return perScore;
}
public Level(int levelNo,int strLength,int strTimes,int timeLimit,int perScore) {
this.levelNo=levelNo;
this.strLength=strLength;
this.strTimes=strTimes;
this.timeLimit=timeLimit;
this.perScore=perScore;
}
}
public class LevelParam {
public static final 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);
}
}
import java.util.Scanner;
public class Player {
private int levelNo=1;//玩家当前级别
private int curScore;//当前级别积分
private long startTime;//当前级别开始时间
private long elapsedTime;//当前级别已用时间
public int getLevelNo() {
return levelNo;
}
public void setLevelNo() {
this.levelNo++;
}
public int getCurScore() {
return curScore;
}
public void setCurScore(Player player) {
this.curScore = curScore+LevelParam.levels[player.getLevelNo()-1].getPerScore();;
}
public void setCurScore(int a) {
this.curScore=a;
}
public long getStartTime() {
return startTime;
}
public void setStartTime() {
this.startTime =System.currentTimeMillis();;
}
public long getElapsedTime() {
return elapsedTime;
}
public void setElapsedTime(long a,long b) {
this.elapsedTime=(a-b)/1000+elapsedTime;
}
public void setElapsedTime(int a) {
this.elapsedTime=a;
}
public void play(Player player) {
Game one=new Game();
for(int j=0;j<6;j++) {
for(int i=0;i<LevelParam.levels[player.getLevelNo()-1].getStrTimes();i++) {
one.printResult(player);
}
player.setLevelNo();
player.setCurScore(0);
player.setElapsedTime(0);
}
}
}
public class Test {
public static void main(String[] args) {
Player p=new Player();
p.play(p);
}
}
更多有趣的经典小游戏实现专题,分享给大家:
C++经典小游戏汇总
python经典小游戏汇总
python俄罗斯方块游戏集合
JavaScript经典游戏 玩不停
java经典小游戏汇总
javascript经典小游戏汇总
来源:https://blog.csdn.net/CYH_progress/article/details/107081036


猜你喜欢
- 1、JDBCJDBC 就是 数据库开发 操作的 代名词,因为只要是现代商业项目的开发那么一定是离不开 数据库 的,不管你搞的是什么,只要是想
- 1、输出矩形以此矩形案例(4行,9列的矩形)为例public static void main(String[] args) {  
- 一、简单的命令-n 在非 GUI 模式下运行JMeter-t 要运行的 JMeter 测试脚本文件-r 远程执行启动全部代理机-H 代理机器
- 1.前言开发过程中,讲一个对象的属性和值赋值到另一个对象上,大量使用了get、set方法,看着很臃肿,思考下肯定不只有我有这种想法,所以技术
- 最近参与了开发一款旅行APP,其中包含实时聊天和动态评论功能,终于耗时几个月几个伙伴完成了,今天就小结一下至于实时聊天功能如果用户不多的情况
- 网上搜集了java的学习思维导图,分享给大家。01.Java程序设计(基础)02.Java程序设计(专题)03.客户端网页编程04.Java
- 目录I. 环境配置1. 项目配置2. 数据库表II. 传参类型确定1. 参数类型为整形2. 指定jdbcType3. 传参类型为String
- 前提:① 已经提供了一个wsdl接口② 该接口能正常调用总体分为两种方式:1.使用cxf的wsdl2java工具生成本地类(使用方式就是本地
- 最近看到在Linux上折腾jmeter的人越来越多,不过即使在windows上,jmeter的脚本我还是建议用命令行来执行(降低GUI模式带
- 引言在上一篇文章中# Android进阶宝典 -- KOOM线上APM监控最全剖析,我详细介绍了对于线上App内存监控的方案策略,其实除了内
- 去掉DataTable中(所有列的数据都相同)重复的行: //DataView dv = dt3.DefaultView;&nbs
- 什么是自动装箱,拆箱先抛出定义,Java中基础数据类型与它们的包装类进行运算时,编译器会自动帮我们进行转换,转换过程对程序员是透明的,这就是
- 前言公司最近在开发中遇到一个问题,在弄帖子的发布与回复问题,然后再iOS端和Android端添加表情的时候都会出错Caused by: ja
- 一、定义登录控制器目录结构代码:1、创建TUser类package com.demo.pojo;import lombok.AllArgsC
- 之前文章都是基于用户名密码登录,第六章图形验证码登录其实还是用户名密码登录,只不过多了一层图形验证码校验而已;Spring Security
- 这里记录下C#中using关键字的使用方法。Using的使用大致分别以下三种:1 :using 指令(命名空间)using System;u
- 简介本文用示例介绍java的Period的用法。Duration和Period说明Duration类通过秒和纳秒相结合来描述一个时间量,最高
- Rsa加密RSA是目前最有影响力的公钥加密算法,RSA也是第一个既能用于数据加密也能用于数字签名的算法。该算法基于一个十分简单的数论事实:将
- 报错信息如下:java: 无法访问org.springframework.boot.SpringApplication错误的类文件: /C:
- IO流代码:void LoadByIO() { float time = Time.t