云计算实训 :Java面向对象答辩项目

云计算实训 :Java面向对象答辩项目,第1张

云计算实训 :Java面向对象答辩项目

这学期16~17周,参加了北大青鸟旗下南京中博的培训

受益匪浅,加深了对Java的理解,还打开了python和HTML的大门

话不多说,上项目实战:

 这是一个打字项目,在同一个文件夹下中创建项目,分门别类

创建类,设置变量Level:

package Dazi;

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 String toString() {
        return "Level{" +
                "levelNo=" + levelNO +
                ",strLength=" + strLength +
                ", strTimes=" + strTimes +
                ", timeLimit=" + timeLimit +
                ", 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 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;
        }
    }

Game:

package Dazi;

import java.util.Random;
import java.util.Scanner;

public class Game {
    private Player player;

    public Game(Player player) {
        this.player = player;
    }

    public String strPrint() {
        StringBuilder out = new StringBuilder();
        int levelNo = player.getLevelNO();
        Level level = LevelParam.LEVEL[levelNo - 1];
        int strLength = level.getStrLength();
        Random r = new Random();
        for (int i = 0; i < strLength; i++) {
            int c = r.nextInt(57) + 65;
            char a = (char) c;
            out.append(a);
        }
        System.out.println(out);
        return out.toString();
    }

    public boolean printResult(String in, String out) {

        int levelNo = player.getLevelNO();
        ;
        Level level = LevelParam.LEVEL[levelNo - 1];
        int timeLimit = level.getTimeLimit();
        player.setElapsedTime(1);
        if (in.equals(out)) {
            System.out.println("输入正确");
            if (player.getElapsedTime() <= timeLimit) {
                System.out.println("挑战成功,积分+1");
                player.setCurrScore(player.getCurrScore() + 1);
                System.out.println("输入正确,你的积分是:" + player.getCurrScore() + "你的级别是"
                        + player.getLevelNO() + ",你已用时间是" + player.getElapsedTime() + "秒");
                return true;
            }
        }
        System.out.println("挑战失败");
        return false;
    }

    public boolean startGame() {
        System.out.println("****************************************************");
        System.out.println("****************看看谁敲键盘快********************");
        System.out.println("*********************等级达到7级时游戏成功,自动结束**********************");
        System.out.println("游戏规则:敲的正确则成功,同一级别需要多次成功,打错一次就失败,游戏结束");
        System.out.println("***************游戏开始:请输入和题目一样的字符串**********************");
        int levelNo = player.getLevelNO();
        Level Level = LevelParam.LEVEL[levelNo - 1];
        int strTimes = Level.getStrTimes();
        for (int i = 0; i < strTimes; i++) {
            String out = strPrint();
            Scanner scanner = new Scanner(System.in);
            String in = scanner.next();
            boolean flag = printResult(in, out);
            if (!flag) {
                return false;
            }
        }
        return true;
    }
}

 循环,进阶程序:LeveParam

package Dazi;

public class LevelParam {
    public final static Level[] LEVEL = new Level[6];

    static {
       Level level1 = new Level(1,4,3,4000,1);
       Level level2 = new Level(2,5,4,5000,2);
        Level level3 = new Level(3,6,5,6000,3);
        Level level4 = new Level(4,7,6,7000,4);
        Level level5 = new Level(5,8,7,8000,5);
        Level level6 = new Level(6,9,8,9000,6);
        LEVEL[0]=level1;
        LEVEL[1]=level2;
        LEVEL[2]=level3;
        LEVEL[3]=level4;
        LEVEL[4]=level5;
        LEVEL[5]=level6;

        // 使用循环
        // for (int i = 0; i < 6; i++) {
        // 创建对象
       // Level levelx = new Level(i+1,2*(i+1),2*(i+1),2000*(i+1),i+1);
        // 放入数组
        //LEVEL[i]=levelx;
    }
}

  实现类Player:

package Dazi;

public class Player {

    private int levelNO ;
    private int currScore;
    private long startTime = System.currentTimeMillis()/1000;
    private long elapsedTime;

    public int getLevelNO() {
        return levelNO;
    }

    public void setLevelNO(int levelNO) {
        this.levelNO = levelNO;
    }

    public int getCurrScore() {
        return currScore;
    }

    public void setCurrScore(int currScore) {
        this.currScore = currScore;
    }

    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 = System.currentTimeMillis()/1000-this.startTime;
    }

    public void play(){
        Game game = new Game(this);

      while (levelNO <= 6){
          boolean flag = game.startGame();
          if (flag){
              this.levelNO +=1;
              this.elapsedTime =0;
              System.out.println("恭喜成功晋级");
              System.out.println("你现在的等级是:"+this.levelNO);
              System.out.println("你已用时间是" + this.getElapsedTime() + "秒");
              if (levelNO ==7){
                  System.out.println("您打的字全都对了,恭喜闯关成功");
              }else {
                  System.out.println("你现在的等级是:"+this.levelNO);
                  System.out.println("你已用时间是" + this.getElapsedTime() + "秒");
              }
          }else {
              System.out.println("很遗憾,您打错字了,闯关失败");
              System.out.println("你闯到"+this.levelNO+"关");
              System.out.println("你已用时间是" + this.getElapsedTime() + "秒");
              break;
          }
      }
    }
}

 测试类Test:

package Dazi;

import java.sql.SQLOutput;

public class Test {
    public static void main(String[] args) {

        Player player = new Player();
           player.setLevelNO(2);
           player.play();
           //Game game = new Game(player);
           // game.strPrint();
    }
}

 运行结果(闯关成功截图):

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5687648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存