8.项目实战-QuickHit

 

 

 

 

 

 

package cn.bdqn.bdqn;

// 游戏级别参数类
public class Level {

    private int levelNo;    // 级别编号
    private int strLength;  // 打印字符串长度
    private int strTimes;   // 打印字符串次数
    private int timeLimit;  // 限制时长(秒)
    private int 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 int getLevelNo() {
        return levelNo;
    }

    public int getStrLength() {
        return strLength;
    }

    public int getStrTimes() {
        return strTimes;
    }

    public int getTimeLimit() {
        return timeLimit;
    }

    public int getPerScore() {
        return perScore;
    }
}
package cn.bdqn.bdqn;


import java.util.Random;

/**
 *  游戏类
 */

public class Game {

    // 表示游戏玩家
    private Player player;

    // 带参构造
    public Game(Player player){
        this.player = player;
    }

    // 打印随机字符串并返回该字符串
    public String printStr(){
        // 获取玩家对应级别的游戏参数对象
        Level level = LevelParam.levels[this.player.getLevelNo()-1];
        String[] strs = {"<",">","*","%","#","&","@"};
        String printStr = "";
        for (int i = 1; i <= level.getStrLength(); i++) {
            Random random = new Random();
            int index = random.nextInt(level.getLevelNo() + 1);
            String randomStr = strs[index];
            printStr += randomStr;
        }
        System.out.println("===> " + printStr);
        return printStr;
    }

    // 打印本次小关的执行结果
    public void printResult(String out,String in){
        // 输入错误:提示信息,系统停止
        if(!out.equals(in)){
            System.out.println("输入错误,游戏结束!");
            System.exit(0);
        }
        // 级别参数中有时长限制(timeLimit),玩家中有已用时长(elapsedTime)
        Level level = LevelParam.levels[this.player.getLevelNo()-1];
        if(level.getTimeLimit() < this.player.getElapsedTime()){
            System.out.println("你输入太慢了,已经超时,退出!");
            System.exit(0);
        }
        // 累加本关积分
        this.player.setCurScore(this.player.getCurScore()+level.getPerScore());
        // 打印相关信息
        System.out.println("输入正确,您的积分"+this.player.getCurScore()
                +",您的级别"+this.player.getLevelNo()
                +",已用时间"+this.player.getElapsedTime()+"秒。");
    }
}
package cn.bdqn.bdqn;

// 当前游戏所有级别的初始化参数描述类
public class LevelParam {

    public static final Level[] levels;

    static {
        levels = new Level[6];
        levels[0] = new Level(1,2,1,30,1);
        levels[1] = new Level(2,3,1,28,2);
        levels[2] = new Level(3,4,1,26,3);
        levels[3] = new Level(4,5,1,24,4);
        levels[4] = new Level(5,6,1,22,5);
        levels[5] = new Level(6,7,1,20,6);
    }

}
package cn.bdqn.bdqn;



import java.util.Scanner;

// 玩家类
public class Player {

    private int levelNo; // 当前级别
    private int curScore; // 当前级别积累的积分
    private long startTime; // 当前级别开始的s时间戳(从1970年元时1月1日0点0分0秒0毫秒)
    private int elapsedTime; // 当前级别已用时间(秒)

    // 玩游戏
    public void play(){
        Scanner input = new Scanner(System.in);
        // 创建游戏类
        Game game = new Game(this);
        // 开始游戏的过程
        // 外层循环控制级数
        for (int i = 0; i < LevelParam.levels.length; i++){
            // 玩家升一级,用时和积分清零
            this.levelNo++; // 升级
            this.setCurScore(0); // 积分清零
            this.setElapsedTime(0); // 用时清零
            this.setStartTime(System.currentTimeMillis()); // 本级开始的时间戳
            // 根据当前级别的字符串打印次数循环完成每关游戏
            // 内层循环控制没关游戏过程
            Level level = LevelParam.levels[this.getLevelNo()-1];
            for (int j = 1; j <=level.getStrTimes(); j++){
                // 游戏打印字符串
                String out = game.printStr();
                // 玩家输入字符串
                String in = input.next();
                // 计算本次输入后,更新已用时间
                this.setElapsedTime((int)((System.currentTimeMillis() - this.getStartTime()) / 1000));
                // 打印游戏结果
                game.printResult(out,in);
            }
        }
        // 绝世高手
        System.out.println("你已闯关成功,成为绝世高手,恭喜你!!!");
    }

    public int getLevelNo() {
        return levelNo;
    }

    public void setLevelNo(int levelNo) {
        this.levelNo = levelNo;
    }

    public int getCurScore() {
        return curScore;
    }

    public void setCurScore(int curScore) {
        this.curScore = curScore;
    }

    public long getStartTime() {
        return startTime;
    }

    public void setStartTime(long startTime) {
        this.startTime = startTime;
    }

    public int getElapsedTime() {
        return elapsedTime;
    }

    public void setElapsedTime(int elapsedTime) {
        this.elapsedTime = elapsedTime;
    }
}

 

package cn.bdqn.bdqn;



public class Main {

    public static void main(String[] args) {
   // write your code here
        new Player().play();
    }
}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Create.js是一个HTML5基础的动画和游戏框架,可以用来制作互动性强的HTML5应用程序。在Create.js中,可以使用SoundJS库来实现音频的播放和控制。 下面是一个简单的Create.js实战例子,展示如何使用SoundJS库来实现音乐的播放操作。 首先,需要在HTML页面中引入Create.js和SoundJS库: ```html <script src="https://code.createjs.com/createjs-2015.11.26.min.js"></script> <script src="https://code.createjs.com/soundjs-0.6.2.min.js"></script> ``` 接着,在JavaScript代码中,需要初始化SoundJS库,加载音乐文件,并实现音乐的播放、暂停和停止操作: ```javascript // 初始化SoundJS库 createjs.Sound.initializeDefaultPlugins(); // 加载音乐文件 var musicPath = "music.mp3"; createjs.Sound.addEventListener("fileload", handleLoad); createjs.Sound.registerSound(musicPath); // 处理音乐文件加载完成事件 function handleLoad(event) { // 播放音乐 var instance = createjs.Sound.play(event.src); // 监听音乐播放完成事件 instance.addEventListener("complete", handleComplete); // 暂停音乐 instance.pause(); // 停止音乐 instance.stop(); } // 处理音乐播放完成事件 function handleComplete(event) { console.log("音乐播放完成"); } ``` 在上面的代码中,首先调用`createjs.Sound.initializeDefaultPlugins()`方法来初始化SoundJS库。然后,使用`createjs.Sound.registerSound()`方法加载音乐文件,这里我们假设音乐文件为`music.mp3`。通过监听`fileload`事件,可以在音乐文件加载完成后进行处理。在`handleLoad`函数中,首先调用`createjs.Sound.play()`方法播放音乐,这个方法返回一个`SoundInstance`对象,可以用来控制音乐的播放、暂停和停止等操作。通过`instance.addEventListener("complete", handleComplete)`方法可以监听音乐播放完成事件。在`handleLoad`函数中,还演示了如何暂停和停止音乐,可以分别调用`instance.pause()`和`instance.stop()`方法实现。 以上就是一个简单的Create.js实战例子,展示了如何使用SoundJS库来实现音乐的播放操作。在实际应用中,可以根据需求来进行音乐的控制和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值