java打字游戏和解析_java类与对象案例之打字游戏
类与对象案例-童年回忆之打字游戏
一、玩家类
二、等级类
三、游戏类
四、等级地图
五、测试类
这次要做的案例是一个打字游戏的案例,相信大家小时候都玩过金山打字通的警察抓小偷和飞机大战,这次的案例是类似的简易版。
首先对于这个案例,我们要解决的是如何生成随机的字符串,如何判断生成的字符串和输入的字符串是否相等。
一、玩家类
package com.yc.oop6.hc0705;
public class Player {
private int score; //积分
private long startTime; //各级别的开始时间
private long dis; //每次闯关剩余时间
private int levelNo; //级别号码
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public long getStartTime() {
return startTime;
}
public void setStartTime(long startTime) {
this.startTime = startTime;
}
public int getLevelNo() {
return levelNo;
}
public void setLevelNo(int levelNo) {
this.levelNo = levelNo;
}
public Player(int score, long startTime, int levelNo) {
super();
this.score = score;
this.startTime = startTime;
this.levelNo = levelNo;
}
public Player() {
super();
}
public long getDis() {
return dis;
}
public void setDis(long dis) {
this.dis = dis;
}
}
二、等级类
package com.yc.oop6.hc0705;
public class Level {
private int levelNo; //第几关
private int strLength; //字符串长度
private int strTime; //需要输入的次数
private int timeLimit; //时间限制
private int score; //答对一次获得的积分
public int getLevelNo() {
return levelNo;
}
public int getStrLength() {
return strLength;
}
public int getStrTime() {
return strTime;
}
public int getTimeLimit() {
return timeLimit;
}
public int getScore() {
return score;
}
public Level(int levelNo, int strLength, int strTime, int timeLimit, int score) {
super();
this.levelNo = levelNo;
this.strLength = strLength;
this.strTime = strTime;
this.timeLimit = timeLimit;
this.score = score;
}
public Level() {
super();
}
}
三、游戏类
package com.yc.oop6.hc0705;
import java.util.Random;
import java.util.Scanner;
public class Game {
private Player player;
private Random r = new Random();
private Scanner sc = new Scanner(System.in) ;
public Game(Player player) {
this.player = player;
}
//开始游戏
public void startGame() {
System.out.println("游戏开始");
//开始闯关
for(int i = 0; i < Levels.ls.length; i++) {
System.out.println("开始进入第" + (i+1) + "关");
//每一关的开始在这里
player.setLevelNo(player.getLevelNo() + 1);
player.setStartTime(System.currentTimeMillis());
//循环,这一关要输入多少次
for(int j = 0 ; j < Levels.ls[player.getLevelNo() - 1].getStrTime() ; j++ ) {
String out = printStr();
System.out.println(out);
String in = sc.nextLine();
boolean flag = result(in, out);
if(flag == false) {
System.exit(1);;
}
}
//每剩下1s 增加20分
player.setScore(player.getScore() + (int)player.getDis() * 20);
System.out.println("完成第" + (i+1) + "关,您现在的积分为:" + player.getScore());
System.out.println("进入下一关");
}
}
//随机字符串
public String printStr( ) {
String str = "";
double rNum = 0;
for(int i = 0; i < Levels.ls[player.getLevelNo()-1].getStrLength(); i++ ) {
rNum = r.nextDouble();
if(rNum < 0.3333) {
str += (r.nextInt(9)+1);
}else if(rNum < 0.6667){
str += (char)(r.nextInt(26)+65);
}else {
str += (char)(r.nextInt(26)+97);
}
}
return str;
}
//字符串对比
public boolean result(String in, String out) {
//字符串判断
if(out.equals(in)) {
//先获取一下当前的系统时间
long endTimes = System.currentTimeMillis();
long startTimes = player.getStartTime();
//获得下一关的时间
long dis = Levels.ls[player.getLevelNo() -1 ].getTimeLimit();
if((endTimes - startTimes)/1000 > dis) {
System.out.println("游戏超时,游戏结束,您的最终得分为:" + player.getScore());
return false;
}else {
//输入正确,且没有超时
//加积分
int score = Levels.ls[player.getLevelNo()].getScore();
player.setDis(dis - (endTimes - startTimes)/1000);
player.setScore(player.getScore() + score );
System.out.println("输入正确,您现在的积分为:"+ player.getScore() +" ,这一关您还有: " + player.getDis() + " 秒钟");
return true;
}
}else {
System.out.println("输入错误,游戏结束,您的最终得分为:" + player.getScore());
return false;//输入错误
}
}
}
java打字游戏和解析_java类与对象案例之打字游戏相关推荐
- Java类与对象案例之打字游戏
类与对象案例-童年回忆之打字游戏 一.玩家类 二.等级类 三.游戏类 四.等级地图 五.测试类 这次要做的案例是一个打字游戏的案例,相信大家小时候都玩过金山打字通的警察抓小偷和飞机大战,这次的案例是类 ...
- java学习之路——类与对象案例之打字游戏
类与对象案例-童年回忆之打字游戏 一.玩家类 二.等级类 三.游戏类 四.等级地图 五.测试类 这次要做的案例是一个打字游戏的案例,相信大家小时候都玩过金山打字通的警察抓小偷和飞机大战,这次的案例是类 ...
- java 作业 老师与教员信息 类与对象
java 作业 老师与教员信息 类与对象 需求 逻辑图 学生类 public class Student {int age; // 年龄String className; // 班级名称String ...
- Java基础语法(七)——类和对象
文章目录 Java基础语法(七)--类和对象 一.类和对象的初步认识 二. 类和类的实例化 1.类的定义 2.实例化对象 3.如何使用类中的数据 三. 类的成员 1. 字段/属性/成员变量 (1)实例 ...
- java类与对象_Java类与对象
类与对象 1,面向对象编程简介 Java语言最大的特点在于面向对象的编程设计,并且面向对象的编程设计也在由于Java自身的发展而不断发展.面向过程编程(C语言).函数式编程(Scala).面向对象编程 ...
- java对类对象初始化_Java类和对象初始化
Java类和对象初始化Tag内容描述: 1.解析 Java 类和对象的初始化过程 由一个单态模式引出的问题谈起 北京高伟达西南分软 Java EE 软件工程师 三年 Java EE 项目经验 行业方向 ...
- java类与对象作用_Java类与对象
●类和对象的关系: 一:类是对同一类事物(对象)的抽象,对象实际存在的该类的各种实体. 二:面向对编程的核心:找合适的对象来做合适的事. 三:Java中找到对象: 1):sun自己定义好的类,必须知道 ...
- java 对象 方法_java——类、对象、方法
一.类 1.Java语言把一组对象中相同属性和方法抽象到一个Java源文件就形成了类. 一个java文件可以有多个类,但是每一个类都会生成一个class字节码文件. 如果class 前加public ...
- java类和对象实例对象_Java类、对象和实例的理解
最近在看Python,这门面向对象的语言又引起了类的引用.对象和实例这些概念之间的纠结,我按照自己的理解总结了一下Java里三者的关系,如果有不对的地方还希望大家指出. 类的引用和对象的概念没什么好弄 ...
最新文章
- ~/.fcitx/config
- 有赞订单管理的三生三世与“十面埋伏”
- 分库分表就能无限扩容吗,解释得太好了
- 秀操作:函数宏的三种封装方式
- MongoDB查询实现 笛卡尔积,Union All 和Union 功能
- python中怎么计算_python中的加减乘除运算
- Linux Python 安装第三方库时报错 package wheel is not installed
- 常见排序算法之插入排序
- 《机器人学基础》整理(1)
- 爱了!再来推荐5个Java项目开发快速开发脚手架。项目经验和私活都不愁了~
- Matlab如何下载安装科研绘图工具Gramm并绘图
- iOS文章 - 收藏集 - 掘金
- Linkedin如何避免封号及如何高效管理领英账号
- PreTranslateMessage使用
- 让你彻底明白:HTTPS安全通信机制
- TMC4671+TMC6200---Trinamic直流无刷(BLDC)硬件FOC解决方案
- 增值税行业平均税负率参照表
- 我的Android进阶之旅------Android中adb install 安装错误常见列表
- php接收参数引号带斜杆
- android之来电自动拒接并自动回复短信_上课模式app