第五章,


     
public class Game {
	// 被人玩
	Player player;

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

	public Game() {

	}

	// 生成字符串
	public String getStr() {

		StringBuffer buffer = new StringBuffer();
		Random ran = new Random();
		// strLength 2
		int strLength = LevelParam.levels[player.getLevelNo() - 1]
				.getStrLength();
		for (int i = 0; i < strLength; i++) {
			// (0,1)
			int rand = ran.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;
			}
		}
		System.out.println(buffer);
		return buffer.toString();

	}

	public void compareInputCharAndOutPutChar(String out, String in) {
		long currentTime = System.currentTimeMillis();
		if (!out.equals(in)) {
			// 系统抛出的字符 和 用户录入的不一致
			System.out.println("输入错误");
			System.exit(1);
		} else {
			// 超时 //系统抛出的字符 和 用户录入的一致
			// player.getStrTime() 玩家该关卡 开始的时间
			// LevelParam.levels[player.getLevelNo()-1].getTime() 用时间的上限
			if ((currentTime - player.getStrTime()) / 1000 > LevelParam.levels[player
					.getLevelNo() - 1].getTime()) {
				System.out.println("超时了你的手速还不够!");
				System.exit(1);
			} else {
				// 当前关卡 目前总分数 ========原始累计分数+本次分数
				// LevelParam.levels[player.getLevelNo()-1].getScore() 该等级游戏字符
				// 。输入正确一次获得的分数
				player.setScores(player.getScores()
						+ LevelParam.levels[player.getLevelNo() - 1].getScore());

				// 耗时
				long alreadyusetime = (int) (currentTime - player.getStrTime()) / 1000;
				int result = (int) alreadyusetime;
				player.setElapsedTime(result);

				// 获取到当前玩家的等级编号
				int level = player.getLevelNo();

				// 获取当前玩家该关卡的目前总分数
				int scores = player.getScores();

				// 获取当前玩家该关卡已用时间
				int usetime = player.getElapsedTime();
				System.out.println("等级为:" + level + "积分为:" + scores + "所用时间:"
						+ usetime);

				if (level == 6) {
					System.out.println("你很牛x,完成了所有关卡!");
					System.exit(1);
				}

			}

		}
	}

}

**********************************************************************************************************************************************************

public class Level {
	// 等级
	private int levelNo;
	// 字符出现几次
	private int strCount;
	// 字符串的长度
	private int strLength;
	// 分数
	private int score;
	// 重置时间
	private int time;

	public Level() {
		super();
		// TODO Auto-generated constructor stub
	}

	public int getLevelNo() {
		return levelNo;
	}

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

	public int getStrCount() {
		return strCount;
	}

	public void setStrCount(int strCount) {
		this.strCount = strCount;
	}

	public int getStrLength() {
		return strLength;
	}

	public void setStrLength(int strLength) {
		this.strLength = strLength;
	}

	public int getScore() {
		return score;
	}

	public void setScore(int score) {
		this.score = score;
	}

	public int getTime() {
		return time;
	}

	public void setTime(int time) {
		this.time = time;
	}

	public Level(int levelNo, int strCount, int strLength, int score, int time) {
		super();
		this.levelNo = levelNo;
		this.strCount = strCount;
		this.strLength = strLength;
		this.score = score;
		this.time = time;
	}

}




**********************************************************************************************************************************************************

public class LevelParam {
	public final static Level levels[] = new Level[6];
	static {
		levels[0] = new Level(1, 10, 2, 1, 30);
		levels[1] = new Level(2, 9, 3, 2, 26);
		levels[2] = new Level(3, 8, 4, 5, 22);
		levels[3] = new Level(4, 7, 5, 8, 18);
		levels[4] = new Level(5, 6, 6, 10, 14);
		levels[5] = new Level(6, 5, 7, 15, 10);
	}
}


**********************************************************************************************************************************************************

public class Player {
	// 玩家玩的是 第几关?
	private int levelNo;
	// 第几关 开始的 时间
	private long strTime;
	// 当前关卡 目前积分数
	private int scores;
	// 该关卡已经耗时 多长时间。
	private int elapsedTime;

	public void Play() {
		// this:
		Game game = new Game(this);
		Scanner input = new Scanner(System.in);

		for (int i = 0; i < LevelParam.levels.length; i++) {
			// 等级+1
			this.levelNo += 1;
			// 积分清零 时间清零
			this.strTime = System.currentTimeMillis();
			this.scores = 0;
			// 二重循环次数 控制 字符 出现几次??
			for (int j = 0; j < LevelParam.levels[levelNo - 1].getStrCount(); j++) {
				// 获取系统抛出的字符串内容
				String outString = game.getStr();
				String inString = input.next();
				game.compareInputCharAndOutPutChar(outString, inString);

				// 接收用户从keyboard中录入的字符串内容

				// comparexxxxx

			}

		}
	}

	public int getLevelNo() {
		return levelNo;
	}

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

	public long getStrTime() {
		return strTime;
	}

	public void setStrTime(int strTime) {
		this.strTime = strTime;
	}

	public int getScores() {
		return scores;
	}

	public void setScores(int scores) {
		this.scores = scores;
	}

	public int getElapsedTime() {
		return elapsedTime;
	}

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

}

**********************************************************************************************************************************************************


public class TestQK {


	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Player player = new Player();
		player.Play();


	}


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值