java生成英雄与怪物对象,java 创建一个LOL中的英雄类和怪物类 初学者,求大神指点...

匿名用户

1级

2018-05-22 回答

static class Hero{ //英雄类

private String name;//英雄的名字

private Integer experience;//经验值

private Integer level; //英雄等级

private Integer attack; //攻击力

public Hero(String name){ //新建英雄的构造方法

this.name = name;//输入名字

this.experience = 0;//初始经验值为0

this.level = 1;//初始等级为1

this.attack = 100;//初始攻击力为100

}

public void AttackMonster(Monster monster){ //攻击怪物的方法

System.out.println("英雄攻击造成"+this.attack+"点伤害");

Integer hp = monster.getHealthPoint();//怪物被攻击前血量

if (hp > this.attack) { //判断 如果怪物的血量大于攻击力

hp = hp - this.attack;//怪物的血量 就减少攻击力的点数

} else { //如果怪物的血量 等于或者小于攻击力

hp = 0; //怪物血量为0 死亡

}

monster.setHealthPoint(hp); //改变怪物被攻击后的血量

System.out.println("怪物剩余血量"+hp);

if (hp == 0 && this.level <18){ //如果怪物死亡 且英雄等级没有达到最高的18级

System.out.println("英雄的经验值增加"+monster.getExperience()+"点");

this.experience = this.experience + monster.getExperience(); //英雄的经验值 增加

if (this.experience >= level * 100){ //设定 英雄升级所需经验值为 等级*100  如果英雄增加后的经验值达到升级条件

this.experience = this.experience - level*100; //经验值减去当前升级需要的经验值 溢出的进入下一个等级经验

this.level = this.level + 1;//英雄等级 +1

this.attack = this.attack + 20; //设定 每升一级英雄攻击力 +20

System.out.println("英雄升级了,等级+1,攻击力+20,当前等级"+this.level+",当前攻击力"+this.attack);

}

}

}

//获取英雄名字的方法

public String getName() {

return name;

}

//改变英雄名字的方法

public void setName(String name) {

this.name = name;

}

//获取英雄当前经验值的方法

public Integer getExperience() {

return experience;

}

//改变英雄当前经验值的方法

public void setExperience(Integer experience) {

this.experience = experience;

}

//获取英雄当前等级的方法

public Integer getLevel() {

return level;

}

//改变英雄当前等级的方法

public void setLevel(Integer level) {

this.level = level;

}

//获取英雄当前攻击力的方法

public Integer getAttack() {

return attack;

}

//改变英雄当前攻击力的方法

public void setAttack(Integer attack) {

this.attack = attack;

}

}

static class Monster{ //怪物类

private String name; //怪物的名字

private Integer healthPoint;//生命值

private Integer level;//怪物等级

private Integer experience; //怪物的经验值

public Monster(String name,Integer level){ //创建怪物的构造方法 参数 名字,等级

this.name = name; //初始化怪物的名字

this.level = level; //初始化怪物的等级

this.healthPoint = level * 1000; //初始化怪物的血量

this.experience = level * 10;//初始化怪物的经验,英雄杀死后可获得,设定怪物经验值为等级*10

}

public Integer getHealthPoint() {

return healthPoint;

}

public void setHealthPoint(Integer healthPoint) {

this.healthPoint = healthPoint;

}

public Integer getLevel() {

return level;

}

public void setLevel(Integer level) {

this.level = level;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getExperience() {

return experience;

}

public void setExperience(Integer experience) {

this.experience = experience;

}

}

public static void main(String[] args) throws Exception {

Hero hero = new Hero("德玛西亚之力"); //新建一个英雄

Monster monster = new Monster("小兵",1);//新建一个小兵

do {

hero.AttackMonster(monster); //攻击怪物

}while (monster.getHealthPoint() != 0);  //如果怪物没死 一直攻击

}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值