java实现快速打字游戏

 更新时间:2020年07月05日 10:21:17   作者:CYH_progress  
这篇文章主要为大家详细介绍了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经典小游戏汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot解决跨域问题小结

    SpringBoot解决跨域问题小结

    在现代Web应用中,由于安全性和隐私的考虑,浏览器限制了从一个域向另一个域发起的跨域HTTP请求,Spring Boot提供了多种方式来处理跨域请求,本文将介绍其中的几种方法,感兴趣的朋友一起看看吧
    2023-12-12
  • Java方法上注解值修改不成功的问题

    Java方法上注解值修改不成功的问题

    这篇文章主要介绍了Java方法上注解值修改不成功的解决方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • springboot详解实现车险理赔信息管理系统代码

    springboot详解实现车险理赔信息管理系统代码

    本系统基于Springboot开发实现了一个为用户车险进行理赔信息管理的一个信息化管理系统,核心的业务主要是用户申请保险理赔,管理员审核进入理赔程序,事故调查员对事故进行调查和现场勘察,这其中共涉及到三类用户,购买保险的客户,事故调查员和系统管理员
    2022-06-06
  • java实现word文档转pdf并添加水印的方法详解

    java实现word文档转pdf并添加水印的方法详解

    这篇文章主要介绍了java实现word文档转pdf并添加水印的方法,结合实例形式详细分析了java word文档转PDF相关实现技巧与操作注意事项,需要的朋友可以参考下
    2019-09-09
  • Arrays.sort(arr)是什么排序及代码逻辑

    Arrays.sort(arr)是什么排序及代码逻辑

    在学习过程中观察到Arrays.sort(arr)算法可以直接进行排序,但不清楚底层的代码逻辑是什么样子,今天通过本文给大家介绍下Arrays.sort(arr)是什么排序,感兴趣的朋友一起看看吧
    2022-02-02
  • SWT(JFace) 图片浏览器 实现代码

    SWT(JFace) 图片浏览器 实现代码

    SWT(JFace)小制作:图片浏览器
    2009-06-06
  • JAVA Spring Boot 自动配置实现原理详解

    JAVA Spring Boot 自动配置实现原理详解

    这篇文章主要介绍了详解SpringBoot自动配置原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-09-09
  • Java数据结构之二叉查找树的实现

    Java数据结构之二叉查找树的实现

    二叉查找树(亦称二叉搜索树、二叉排序树)是一棵二叉树,且各结点关键词互异,其中根序列按其关键词递增排列。本文将通过示例详细讲解二叉查找树,感兴趣的可以了解一下
    2022-03-03
  • 关于SaCheckPermission权限校验注解

    关于SaCheckPermission权限校验注解

    在若依框架(RuoYi)的前后端分离版4.8.x中,SaCheckPermission注解用于权限校验,这个注解可以应用在方法上,以确保只有具有相应权限的用户才能访问该方法
    2024-11-11
  • Java  解决死锁的方法实例详解

    Java 解决死锁的方法实例详解

    这篇文章主要介绍了java 多线程死锁详解及简单实例的相关资料,需要的朋友可以参考下
    2017-04-04

最新评论