java项目之——坦克大战18

原创 2016年08月28日 19:14:22

本版本:画出多辆坦克。

1.创建敌方坦克集合

List<Tank> tanks = new ArrayList<Tank>();
2.循环画出,坦克对象t

public void paint(Graphics g) {
		g.drawString("missiles count:"+missiles.size(), 10,50);
	    for (int i = 0; i < missiles.size(); i++) {
			Missile m = missiles.get(i);
			m.draw(g);
			m.hitTanks(tanks);
		}
            
	    for (int i = 0; i < explodes.size(); i++) {
			Explode e = explodes.get(i);
			e.draw(g);
			
		}
	    
    	for(int i=0; i<10; i++){
	        Tank t = tanks.get(i);
	        t.draw(g);
	    }
	 
		myTank.draw(g);	
		
	}

3.在launchFrame中添加进入集合。

public void lauchFrame(){
		for(int i=0;i<10;i++){
			tanks.add(new Tank(50+40*(i+1),50,false,this));
		}
		this.setSize(GAME_WIDTH,GAME_HEIGHT);
		this.setTitle("TankWar");
		this.setLocation(80, 60);
		this.setVisible(true);
		this.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e) {
			    System.exit(0);	
			}
		});
		this.setResizable(false);
		new Thread(new paintThread()).start();
		this.addKeyListener(new KeyMonitor());
	}

4.打坦克,hitTanks 创建

public boolean hitTanks(List<Tank> tanks){
		for(int i=0;i<tanks.size();i++){
			if(hitTank(tanks.get(i))){
				return true;
			}
		}
		return false;
	}
在 主方法里面调用hitTanks(),这样就完成了。

m.hitTanks(tanks);
运行结果:


总结:本版本画出多个敌方坦克,同样使用了泛型,没有了敌方坦克,我方坦克打击tanks,所以重新构建hittank方法。


下一个版本:让敌方坦克更加智能(涉及到一个小算法,面试中容易被问到,比较重要)

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java项目之——坦克大战26

本版本做最后的修正:敌人死光重新加入,主战坦克死掉F2重新开始。 1.主类中: 画方法里面判断,如果无敌方坦克,就添加。 if(tanks.size()<=0){ for(int i...

java项目之——坦克大战20

本版本:添加两堵墙。 1.在主类中:墙对象 Wall w1 = new Wall(100, 200, 20, 150, this), w2 = new Wall(300, 100, 300, 20,...

java项目之——坦克大战14

上一个版本:坦克打出多发子弹; 功能:解决炮弹不消亡的问题,解决坦克出界问题。            子弹打中对方坦克或者出界,定义一个控制生死的变量。

java项目之——坦克大战10

实现了坦克的移动,现在要实现坦克可以打出炮弹: 功能:添加子弹类,添加方法和参数。 1.位置和方向属性 int x,y; Tank.Direction dir; 2.构造方法...

java项目之——坦克大战19

本版本:让敌人的坦克更加智能(人工智能) 1.首先让它动起来:方向(move) 然后 随机数产生器 a.坦克中加方法: public Tank(int x,int y,Boolean good,...

java项目之——坦克大战24

图形化表示主战坦克的生命值 a.我们在坦克里面创造内部类: private BloodBar bb= new BloodBar(); b.根据不同 的life值来显示,吧它放在坦克的上面...

java项目之——坦克大战08

功能:然坦克向八个方向行走。(以前只有四个方向)。 内容:添加代表方向的量(枚举)             添加记录按键状态的布尔量     &...

java项目之——坦克大战05

功能:代码重构(设置常量,比较简单) 内容:需要多处改变的量定义为常量。 public static final int GAME_WIDTH =800; public static final ...

java项目之——坦克大战17

版本:写出爆炸类,实现爆炸功能 1.爆炸类创建及测试: public class Explode { int x,y; private boolean live = true;...

java项目之——坦克大战11

功能:1.根据主战坦克的方向和位置,打出子弹,Ctrl键的按键处理             2.根据“坦克打出一发子弹”这句话,来确定Tank中的方法fire,其返回值为Missl...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)