这学期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();
}
}
运行结果(闯关成功截图):