zoukankan      html  css  js  c++  java
  • 快速击键

    复制代码
    public class Level {
        private int levelNo;// 各级别编号
        private int strLength;// 各级别一次输出字符串的长度
        private int strTimes;// 各级别输出字符串的次数
        private int timeLimit;// 各级别闯关的时间限制
        private int 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 getStrTimes() {
            return strTimes;
        }
    
        public void setStrTimes(int strTimes) {
            this.strTimes = strTimes;
        }
    
        public int getTimeLimit() {
            return timeLimit;
        }
    
        public void setTimeLimit(int timeLimit) {
            this.timeLimit = timeLimit;
        }
    
        public int getPerScore() {
            return perScore;
        }
    
        public void setPerScore(int perScore) {
            this.perScore = perScore;
        }
    
        public  Level() {
            super();
        }
    
        public Level(int levelNo, int strLength, int strTimes, int timeLimit,
                int perScore) {
            super();
            this.levelNo = levelNo;
            this.strLength = strLength;
            this.strTimes = strTimes;
            this.timeLimit = timeLimit;
            this.perScore = perScore;
        }
    
    }
    复制代码
    复制代码
    import java.util.Scanner;
    
    /**
     * 玩家类
     * @author accp
     *
     */
    public class Player {
        private int levelNo;   //等级
        private int curScore;   //积分
        private int elapsedTime; //已用时间
        private long startTime;  //开始时间
        
        
        public Player() {
            
        }
        
        
        public Player(int levelNo, int curScore, int elapsedTime, long startTime) {
    
            this.levelNo = levelNo;
            this.curScore = curScore;
            this.elapsedTime = elapsedTime;
            this.startTime = startTime;
        }
    
    
        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 int getElapsedTime() {
            return elapsedTime;
        }
        public void setElapsedTime(int elapsedTime) {
            this.elapsedTime = elapsedTime;
        }
        public long getStartTime() {
            return startTime;
        }
        public void setStartTime(long startTime) {
            this.startTime = startTime;
        }
        
        public void play()
        {
            Game game=new Game(this);//this代表已经创建了的对象引用player
            //外层循环,循环一次级别进一级
            for (int i = 0; i < LevelParam.levels.length; i++) {
                this.levelNo+=1;
                //晋级后,记时清零,积分清零
                this.startTime=System.currentTimeMillis();
                this.curScore=0;
                //内层循环,循环一次完成一次字符串的输出,输入,比较。它的限制参数是输出字符串的次数
                for (int j = 0; j <LevelParam.levels[levelNo-1].getStrTimes(); j++) {
                    String outstr=game.printStr();//游戏输出字符串
                    System.out.println(outstr);
                    Scanner input=new Scanner(System.in);
                    String instr=input.next();
                    game.printResult(outstr, instr);
                }
                
            }
        }
    }
    复制代码
    复制代码
    import java.util.Date;
    import java.util.Random;
    
    /**
     * 游戏类
     * @author accp
     *
     */
    
    public class Game {
        private Player player;
    
        public Game() {
            
        }
        
        public Game(Player player) {
            this.player = player;
        }
    
        public Player getPlayer() {
            return player;
        }
    
        public void setPlayer(Player player) {
            this.player = player;
        }
        
        //输出字符串用于和玩家的输入进行比较
        public String printStr()
        {
            //获取当前玩家级别的字符串长度
            int strLength=LevelParam.levels[player.getLevelNo()-1].getStrLength();
            StringBuffer buffer=new StringBuffer();
            Random random=new Random();
            for (int i = 0; i < strLength; i++) {
                int rand=random.nextInt(strLength);
                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;
                default:
                    break;
                }
                
            }
            String result=buffer.toString();
            return result;
        }
        //比较结果,输出相应信息
        public void printResult(String out,String in)
        {
            if (out.equals(in)) {
                //正确输入
                Date date=new Date();
                long currentTime=date.getTime();
                //如果超时
                long closeTime=LevelParam.levels[player.getLevelNo()-1].getTimeLimit();
                if ((currentTime-player.getStartTime())/1000>closeTime) {
                    System.out.println("你输入的太慢了,已经超时,退出!");
                    System.exit(1);
                }
                else
                {
                    //计算当前玩家积分
                    //所有的积分相加
                player.setCurScore(player.getCurScore()+LevelParam.levels[player.getLevelNo()-1].getPerScore());
                int score=player.getCurScore();//获取数组内的开始积分
                int time=(int)(currentTime-player.getStartTime())/1000;//获取时间差
                player.setElapsedTime(player.getElapsedTime()+time);
                int alltime=player.getElapsedTime();
                int no=player.getLevelNo();
                System.out.println("输入正确,您的级别"+no+",您的积分"+score+",已用时间"+alltime+"");
                }
            }else{
                System.out.println("输入错误 !!!,退出");
                System.exit(1);
                }
                
                
            }
    }
    复制代码
    复制代码
    public class LevelParam {
         public final static 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);
         }
    }
    复制代码
    复制代码
    public class Test {
    
        public static void main(String[] args) {
            
            Player player=new Player();
            player.play();
    }
    }
    复制代码
  • 相关阅读:
    登录界面
    动手动脑
    关于二进制
    Java考试
    D
    威尔逊定理 k!%p
    11.46.2020质检
    最长上升序列输出方案
    问题 G: 汽车的最终位置
    奶牛大会(二分)
  • 原文地址:https://www.cnblogs.com/kai123-qwe/p/6669518.html
Copyright © 2011-2022 走看看