博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QuickHit游戏
阅读量:5337 次
发布时间:2019-06-15

本文共 5902 字,大约阅读时间需要 19 分钟。

需求

这里写图片描述

游戏功能

这里写图片描述

游戏玩家类

/** * 玩家类 *  * @author hp * */public class Player {
private int levelNo;// 玩家当前级别 private int currrScore;// 玩家积分 private long startTime;// 开始时间 private long elapsedTime;// 结束时间 public Player() { super(); // TODO 自动生成的构造函数存根 } public Player(int levelNo, int currrScore) { super(); this.levelNo = levelNo; this.currrScore = currrScore; } public int getLevelNo() { return levelNo; } public void setLevelNo(int levelNo) { this.levelNo = levelNo; } public int getCurrrScore() { return currrScore; } public void setCurrrScore(int currrScore) { this.currrScore = currrScore; } public long getStartTime() { return startTime; } public void setStartTime(long startTime) { this.startTime = startTime; } public long getElapsedTime() { return elapsedTime; } public void setElapsedTime(long elapsedTime) { this.elapsedTime = elapsedTime; } /** * 玩游戏 */ public void play() { }}

游戏级别类

/** * 级别类 *  * @author hp * */public class Level {
private int levelNo;// 各级别号 private int strLength;// 各级别一次输出字符串的长度 private int strTime;// 各级别输出字符串的次数 private int timeLinmit;// 各级别闯关的时间限制 private int perScore;// 各级别正确输入一次得分 public Level() { super(); // TODO 自动生成的构造函数存根 } public Level(int levelNo, int strLength, int strTime, int timeLinmit, int perScore) { super(); this.levelNo = levelNo; this.strLength = strLength; this.strTime = strTime; this.timeLinmit = timeLinmit; this.perScore = 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 getStrTime() { return strTime; } public void setStrTime(int strTime) { this.strTime = strTime; } public int getTimeLinmit() { return timeLinmit; } public void setTimeLinmit(int timeLinmit) { this.timeLinmit = timeLinmit; } public int getPerScore() { return perScore; } public void setPerScore(int perScore) { this.perScore = perScore; }}

游戏级别初始化类

/** * 各级别具体参数信息 *  * @author hp * */public class LevelParam {
public final static Level[] level = new Level[6]; static { level[0] = new Level(1, 2, 10, 30, 1); level[1] = new Level(2, 3, 9, 26, 2); level[2] = new Level(3, 4, 8, 22, 5); level[3] = new Level(4, 5, 7, 18, 8); level[4] = new Level(5, 6, 6, 15, 10); level[5] = new Level(6, 7, 5, 12, 15); }}

游戏类

import java.util.Random;/** * 游戏类 *  * @author hp * */public class Game {
Player p = new Player();// 得到玩家当前属性 public Game(Player p) { super(); this.p = p; } /** * 输出字符串 * * @return */ public String printStr() { StringBuffer buffer = new StringBuffer(); Random random = new Random(); LevelParam lp = new LevelParam(); int num = lp.level[p.getLevelNo() - 1].getStrLength(); // 获得账号的级别输入一次字符串的长度 for (int i = 0; i < num; i++) { int rand = random.nextInt(num); 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; } } return buffer.toString(); } /** * 输出比较结果 */ public void printResult(String out, String in, long currentTime1, long currentTime) { if (out.equalsIgnoreCase(in)) { boolean flag = false; p.setStartTime(currentTime1); p.setElapsedTime(currentTime); if ((currentTime1 - currentTime) / 1000 > LevelParam.level[p .getLevelNo() - 1].getTimeLinmit()) { System.out.println("你输入太慢了,已经超时,退出!"); System.exit(1); } else { p.setCurrrScore(p.getCurrrScore() + LevelParam.level[p.getLevelNo() - 1].getPerScore()); } } else { System.out.println("输入错误,退出!"); System.exit(1); } }}

游戏测试、主函数类

/** * 游戏开始类 *  * @author hp * */public class Strat {    public static void main(String[] args) {        // TODO 自动生成的方法存根        Player p = new Player(1, 2); // 得到玩家当前属性        Game game = new Game(p);        long currentTime1 = System.currentTimeMillis();        for (int i = 0; i < 6; i++) {            for (int j = 0; j < 3; j++) {                String out = game.printStr();                System.out.println(out);                Scanner sc = new Scanner(System.in);                System.out.println("请输入:");                String in = sc.next();                long currentTime = System.currentTimeMillis();                game.printResult(out, in, currentTime1, currentTime);                System.out.println("输入正确,您的积分" + p.getCurrrScore() + ",您的级别"                        + p.getLevelNo() + ",已用时间"                        + (p.getElapsedTime() - p.getStartTime()) / 1000);            }            p.setLevelNo(p.getLevelNo() + 1);// 晋级            System.out.println("恭喜晋级为" + p.getLevelNo() + "级!");            p.setCurrrScore(0);            if (p.getLevelNo() > 6) {                System.out.println("您已满级通关!");                break;            }        }    }}

运行截图

这里写图片描述

转载于:https://www.cnblogs.com/wangqilong/p/8279806.html

你可能感兴趣的文章
[No00002E]关于大数据,你不知道的6个迷思
查看>>
JAVA入门--目录
查看>>
数据结构与算法--树的三种存储结构
查看>>
HDU 4358 Boring counting(莫队+DFS序+离散化)
查看>>
NBOJv2 1050 Just Go(线段树/树状数组区间更新单点查询)
查看>>
SCU 4438 Censor(哈希+模拟栈)
查看>>
在 Tomcat 中自定义 404 页面(简单配置)
查看>>
HDU-1298-T9
查看>>
U盘制作macOS Sierra的启动盘
查看>>
JAVA单例模式详解
查看>>
Kafka集群的安装和使用
查看>>
语言的转义字符及正则表达式的转义字符的表示
查看>>
C++_归并排序
查看>>
javascript初始笔记
查看>>
02.MySQL.存储引擎-事务-隔离级别-锁
查看>>
html的文字标记
查看>>
优先队列-优先级别
查看>>
jQuery实现,动态自动定位弹窗。JS分页,Ajax请求
查看>>
iis应用程序池 内存溢出错误 System.OutOfMemoryException
查看>>
2017.3.19 for
查看>>