游戏玩家(名称,生命值,等级),坦克,大兵类,玩家之间可以相互攻击,大兵拥有武器,用枪弹和反坦克炮弹,造成攻击不同,坦克攻击值固定,请设计玩家互相攻击的过程,实现坦克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);}}