zoukankan      html  css  js  c++  java
  • 小游戏,快速击键

      自己写了个非常简单的游戏,然而自己还玩不过去,不过简单改一下就可以通关了。我本来可以写的更好的,但是懒得再改。现在自己写了一个游戏,虽然很简单。但是,对游戏有了更多的了解。其实所有游戏都是一堆数据而已,却可以让人那么着迷。不说了,游戏写的不好。不过感触良多!

      废话说的略多,进入主题。写项目吗?都是先分析项目需求,今天写的是游戏。(开发环境MyEclipse2014,有时间我会写一个从配置环境变量到破解的博文!)

    代码双手奉上

    这是需要的几个类

     

    没有注释(注释是给别人看的,不过这么简单的代码就不写了,主要是因为我懒)!

     1 package cn.curry.day05;
     2 
     3 public class Player {
     4     private int levelNo;
     5     private int curScore;
     6     private long starTime;
     7     private int elapsedTime;
     8     public int getLevelNo() {
     9         return levelNo;
    10     }
    11     public void setLevelNo(int levelNo) {
    12         this.levelNo = levelNo;
    13     }
    14     public int getCurScore() {
    15         return curScore;
    16     }
    17     public void setCurScore(int curScore) {
    18         this.curScore = curScore;
    19     }
    20     public long getStarTime() {
    21         return starTime;
    22     }
    23     public void setStarTime(long starTime) {
    24         this.starTime = starTime;
    25     }
    26     public int getElapsedTime() {
    27         return elapsedTime;
    28     }
    29     public void setElapsedTime(int elapsedTime) {
    30         this.elapsedTime = elapsedTime;
    31     }
    32     public void play() {
    33         Game game=new Game();
    34         game.printResult();
    35     }
    36 
    37 }
    package cn.curry.day05;
    
    import java.util.Random;
    import java.util.Scanner;
    
    public class Game {
    	private Player player = new Player();
    
    	public Player getPlayer() {
    		return player;
    	}
    
    	public void setPlayer(Player player) {
    		this.player = player;
    	}
    
    	Scanner inputScanner = new Scanner(System.in);
    
    	public String printStr(int levelNo) {
    		StringBuffer sBuffer = new StringBuffer();
    		int strLength = LevelParam.level[levelNo - 1].getStrLength();
    		Random random = new Random();
    		for (int j = 0; j < strLength; j++) {
    			int rand = random.nextInt(strLength);
    			switch (rand) {
    			case 0:
    				sBuffer.append(">");
    				break;
    			case 1:
    				sBuffer.append("<");
    				break;
    			case 2:
    				sBuffer.append("*");
    				break;
    			case 3:
    				sBuffer.append("&");
    				break;
    			case 4:
    				sBuffer.append("%");
    			case 5:
    				sBuffer.append("#");
    				break;
    
    			}
    		}
    
    		return sBuffer.toString();
    	}
    
    	public void printResult() {
    
    		long starTime = System.currentTimeMillis();
    		player.setStarTime(starTime);
    		for (int i = 1; i <= LevelParam.level.length; i++) {			
    			starTime = System.currentTimeMillis();			
    			int count = 0;
    			int allScore = 0;
    			for (int j = 0; j <= count; j++) {
    				String liveChar = printStr(LevelParam.level[i - 1].getLevalNo());
    				System.out.println(liveChar);
    				String startChar = inputScanner.next();
    
    				int score = LevelParam.level[i - 1].getPerScore();
    				long nextTime = System.currentTimeMillis();
    				long useTime = (nextTime - starTime) / 1000;
    				if ((nextTime - player.getStarTime()) / 1000 > LevelParam.level[i - 1]
    						.getTimeLinit()) {
    					System.out.println("您输入太慢了,已超时,游戏结束");
    					System.exit(1);
    				}
    				if (liveChar.equals(startChar)) {
    					System.out.println("输入正确");
    					allScore += score;
    					count++;
    					System.out.println("输入正确,您的级别"
    							+ LevelParam.level[i - 1].getLevalNo() + ",您的积分"
    							+ allScore + "已用时" + useTime);
    
    				} else {
    					System.out.println("输入错误,游戏结束!");
    					System.exit(1);
    				}
    
    				if (count == LevelParam.level[i - 1].getStrTime()) {
    					long thenTime = System.currentTimeMillis();
    					player.setStarTime(thenTime);
    
    					break;
    				} else {
    
    					continue;
    				}
    
    			}
    
    		}
    		System.out.println("恭喜您游戏通关!");
    
    	}
    
    }
    

      

    package cn.curry.day05;
    
    public class Level {
    	private int levalNo;
    	private int strLength;
    	private int strTime;
    	private int timeLinit;
    	private int perScore;
    	public Level(int levalNo, int strLength, int strTime, int timeLinit,
    			int perScore) {
    		
    		this.levalNo = levalNo;
    		this.strLength = strLength;
    		this.strTime = strTime;
    		this.timeLinit = timeLinit;
    		this.perScore = perScore;
    	}
    	public int getLevalNo() {
    		return levalNo;
    	}
    	public void setLevalNo(int levalNo) {
    		this.levalNo = levalNo;
    	}
    	public int getStrLength() {
    		return strLength;
    	}
    	public void setStrLength(int strLength) {
    		this.strLength = strLength;
    	}
    	public int getStrTime() {
    		return strTime;
    	}
    	public void setStrTime(int strTime) {
    		this.strTime = strTime;
    	}
    	public int getTimeLinit() {
    		return timeLinit;
    	}
    	public void setTimeLinit(int timeLinit) {
    		this.timeLinit = timeLinit;
    	}
    	public int getPerScore() {
    		return perScore;
    	}
    	public void setPerScore(int perScore) {
    		this.perScore = perScore;
    	}
    
    }
    

      

    package cn.curry.day05;
    
    public class LevelParam {
    	public final static Level level[]=new Level[6];
    	static{
    		level[0]=new Level(1,2,10,30,1);
    		level[1]=new Level(2,3,9,26,2);
    		level[2]=new Level(3,4,8,22,5);
    		level[3]=new Level(4,5,7,18,8);
    		level[4]=new Level(5,6,6,15,10);
    		level[5]=new Level(6,7,5,12,15);
    	}
    
    }
    

      

    package cn.curry.day05;
    
    public class Test {
        public static void main(String[] args) {
            Player player=new Player();
            player.play();
        }
    
    }

    其中缺点太多,好多BUG没调。总之很烂的代码。但是不会写的借鉴下看看还是可以的!

    互相交流学习而已,写的再烂这是我自己写的,这是我思想的体现。我会进步的,学习其实没有那么难。一个没学过几天JAVA的年轻码农!

  • 相关阅读:
    ASP.NET MVC路由模块
    线程安全的单例模式
    MVC自带表单效验
    MSsql 中 in 语法排序的说明
    Web.Config配置错误页面处理
    WCF基本应用
    .NET微信自定义分享标题、缩略图、超链接及描述的设置方法
    .NET微信通过授权获取用户的基本信息
    C#中获取服务器IP,客户端IP以及网卡物理地址
    .NET获取客户端、服务器端的信息
  • 原文地址:https://www.cnblogs.com/wei-91/p/5973160.html
Copyright © 2011-2022 走看看