面向对象练习坦克大兵游戏

游戏玩家(名称,生命值,等级),坦克,大兵类,玩家之间可以相互攻击,大兵拥有武器,用枪弹和反坦克炮弹,造成攻击不同,坦克攻击值固定,请设计玩家互相攻击的过程,实现坦克A大兵,大兵打坦克,大兵用枪打坦克,大兵用反坦克导弹打坦克。

大兵被坦克攻击了,从200到0
坦克被反坦克炮弹攻击了,从1000到500
坦克被手枪攻击了,从500到400

在这里插入图片描述

package com;

public class Tank extends Player{

	public Tank() {
			this.setName("坦克");
			this.setBlood(1000);
			this.setAtackvalue(200);
	}
	
}

package com;

public class Soldier extends Player {

	private Weapon wp;
	
	public Soldier() {
		this.setName("大兵");
		this.setAtackvalue(20);
		this.setBlood(200);
		
	}
	
	public void setWeapon(Weapon wp ) {
		
		this.wp=wp;
	}
	
	public void fire(Player target) {
	
		if(wp==null) {
			
			int blood0,blood;
			blood0=target.getBlood();
			blood=blood0-this.getAtackvalue();
			target.setBlood(blood);
			System.out.println(target.getName()+"被"+this.getName()+"攻击了,从"+blood0+"到"+target.getBlood());
			
			
		}
		else {			
			wp.fire(target);
		}
	}
	
	
}


package com;

public class Player {

	private String name; // 名称
	private int blood ; // 生命值
	private int level; // 等级默认为1,所有输出值为等级x数值
	private int atackvalue;  //攻击值
	
	public int getAtackvalue() {
		return atackvalue;
	}
	public void setAtackvalue(int atackvalue) {
		this.atackvalue = atackvalue;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getBlood() {
		return blood;
	}
	public void setBlood(int blood) {
		this.blood = blood;
	}
	public int getLevel() {
		return level;
	}
	public void setLevel(int level) {
		this.level = level;
	}
	
	public void fire(Player target) {
		int blood,blood0;
		blood0=target.getBlood();
		blood =blood0 - this.getAtackvalue();
		target.setBlood(blood);
        System.out.println(target.getName()+"被"+this.getName()+"攻击了,从"+blood0+"到"+target.getBlood());
	}
	
	
	

}

package com;

public  class Weapon {
	private String name ; //武器名称
	private  int atackvalue;  //攻击值
		
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAtackvalue() {
		return atackvalue;
	}

	public void setAtackvalue(int atackvalue) {
		this.atackvalue = atackvalue;
	}

	public void fire(Player target) {
		int blood0,blood;
		blood0=target.getBlood();
		blood =blood0  - this.getAtackvalue();
		target.setBlood(blood);

		System.out.println(target.getName()+"被"+this.getName()+"攻击了,从"+blood0+"到"+target.getBlood());
	}



	
}

package com;

public class Bullet extends Weapon {

	public Bullet() {

		this.setAtackvalue(100);
		this.setName("手枪");
	}




}

package com;

public class Shell extends Weapon {

	public Shell() {

		this.setAtackvalue(500);
		this.setName("反坦克炮弹");
	}


	
	
	

}

package com;

public class Test {

	public static void main(String[] args) {
		 	
      Tank tk=new Tank();
      Soldier s=new Soldier();
      tk.fire(s);
      
      Soldier s2=new Soldier();
      Shell shell=new Shell();
      s2.setWeapon(shell);
      s2.fire(tk);
      Bullet bl=new Bullet();
      s2.setWeapon(bl);
      s2.fire(tk);

		
		
	}

}

相关推荐

  1. python面向对象练习

    2024-04-20 19:46:07       43 阅读
  2. python面向对象练习

    2024-04-20 19:46:07       42 阅读
  3. 面向对象进阶基础练习

    2024-04-20 19:46:07       26 阅读
  4. 【C++】C++面向对象练习题

    2024-04-20 19:46:07       37 阅读
  5. 游戏架构之面向对象模型和组件模型

    2024-04-20 19:46:07       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-20 19:46:07       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-20 19:46:07       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-20 19:46:07       87 阅读
  4. Python语言-面向对象

    2024-04-20 19:46:07       96 阅读

热门阅读

  1. 自动化运维工具Ansible模块的介绍与使用

    2024-04-20 19:46:07       34 阅读
  2. 作文笔记7 说明文说明方法

    2024-04-20 19:46:07       27 阅读
  3. 【数据库】MySQL之union联合查询

    2024-04-20 19:46:07       34 阅读
  4. tcpdump服务器抓包实测

    2024-04-20 19:46:07       27 阅读
  5. Excel文件转Asc文件

    2024-04-20 19:46:07       29 阅读
  6. Rust 入门-更换镜像源(MAC)

    2024-04-20 19:46:07       46 阅读
  7. mybatis使用

    2024-04-20 19:46:07       34 阅读
  8. 【QT教程】QML Web多媒体处理

    2024-04-20 19:46:07       29 阅读
  9. vue3知识点补充第二节

    2024-04-20 19:46:07       37 阅读