游戏玩家(名称,生命值,等级),坦克,大兵类,玩家之间可以相互攻击,大兵拥有武器,用枪弹和反坦克炮弹,造成攻击不同,坦克攻击值固定,请设计玩家互相攻击的过程,实现坦克A大兵,大兵打坦克,大兵用枪打坦克,大兵用反坦克导弹打坦克。
bash
大兵被坦克攻击了,从200到0
坦克被反坦克炮弹攻击了,从1000到500
坦克被手枪攻击了,从500到400
java
package com;
public class Tank extends Player{
public Tank() {
this.setName("坦克");
this.setBlood(1000);
this.setAtackvalue(200);
}
}
java
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);
}
}
}
java
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());
}
}
java
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());
}
}
java
package com;
public class Bullet extends Weapon {
public Bullet() {
this.setAtackvalue(100);
this.setName("手枪");
}
}
java
package com;
public class Shell extends Weapon {
public Shell() {
this.setAtackvalue(500);
this.setName("反坦克炮弹");
}
}
java
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);
}
}