这学期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(); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)