JAVA程序设计题——英雄对战游戏,定义一个描述战斗单位的英雄(Hero)类,此类必须包含以下成员变量:名称(name),生命值(life),技能1攻击力(damage1),防御力(defence)

  • 实验内容及要求

1、定义一个描述战斗单位的英雄(Hero)类,此类必须包含以下成员变量:名称(name),生命值(life),技能1攻击力(damage1),防御力(defence)。此类包含成员方法:受到对手攻击时的处理方法(attacked())。

2、此游戏中存在多种战斗角色:刺客(Assassin)、法师(Mage)、坦克(Tank),每种角色都是由要求1所定义的类派生出来的子类。各角色类都继承英雄(Hero)类,并添加成员属性:技能2攻击力(damage2)和技能3攻击力(damage3),在各角色类中,根据表1在其无参构造方法中初始化各角色的生命值、攻击力、防御力。定义一个免伤(Safe)接口,Safe接口中定义抽象方法show();各角色类都实现Safe接口,在重写的show()方法中输出免伤信息。类图如图1所示。

表1 各类英雄属性

英雄名称

生命值

技能1攻击力

技能2攻击力

技能3攻击力

防御力

刺客

100

6

  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
以下是一个简单的 Java 王者荣耀英雄对战代码示例: ```java // 定义英雄 class Hero { private String name; private int hp; private int mp; private int damage; public Hero(String name, int hp, int mp, int damage) { this.name = name; this.hp = hp; this.mp = mp; this.damage = damage; } public void attack(Hero target) { int damage = this.damage; if (this.mp >= 10) { damage *= 2; this.mp -= 10; } target.receiveDamage(damage); System.out.println(this.name + "对" + target.getName() + "造成了" + damage + "点伤害!"); } public void receiveDamage(int damage) { this.hp -= damage; if (this.hp < 0) { this.hp = 0; } } public boolean isDead() { return this.hp == 0; } public String getName() { return name; } } // 游戏场景 public class Game { public static void main(String[] args) { // 初始化英雄 Hero hero1 = new Hero("盖伦", 1000, 100, 100); Hero hero2 = new Hero("寒冰", 800, 150, 80); // 开始战斗 while (!hero1.isDead() && !hero2.isDead()) { // 英雄1攻击英雄2 hero1.attack(hero2); // 英雄2攻击英雄1 hero2.attack(hero1); } // 判断胜负 if (hero1.isDead()) { System.out.println(hero2.getName() + "获胜!"); } else { System.out.println(hero1.getName() + "获胜!"); } } } ``` 上述代码实现了英雄和简单的英雄对战逻辑。在游戏场景中,我们创建了两个英雄对象,然后让两个英雄轮流攻击对方,直到有一方英雄死亡为止,最后判断胜负并输出结果。在英雄中,我们定义了攻击和受伤方法,以及判断是否死亡的方法。在攻击方法中,我们判断英雄是否有足够的蓝量释放技能,如有则造成双倍伤害,否则造成普通伤害。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杪商柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值