用java实现对战游戏,并对其进行功能升级。至少完成以下一项功能升级 增加一项回复技能,功能为恢复自身hp 增加一项伤害技能,使用后每回合扣减对方血量。(例如每回合-5hp) 增加一项强力技能,要求需间隔3回合才能使用
时间: 2023-05-25 09:06:03 浏览: 144
我们可以创建一个基本战斗类Battle,其中包含两个角色对象和一些基本方法,例如攻击、技能等。
```java
public class Battle {
private Role role1;
private Role role2;
public Battle(Role role1, Role role2) {
this.role1 = role1;
this.role2 = role2;
}
//攻击方法
public void attack(Role from, Role to) {
int damage = from.getAttack() - to.getDefense();
if (damage > 0) {
to.setHp(to.getHp() - damage);
System.out.println(from.getName() + "进行攻击," + to.getName() + "受到" + damage + "点伤害,剩余血量为" + to.getHp());
} else {
System.out.println(to.getName() + "受到攻击,但是抵挡了所有伤害");
}
}
//使用技能1,回复自身
public void skill1(Role from) {
from.setHp(from.getHp() + 20);
System.out.println(from.getName() + "使用回复技能,恢复20HP,当前血量为" + from.getHp());
}
//使用技能2,造成伤害
public void skill2(Role from, Role to) {
int damage = 5;
to.setHp(to.getHp() - damage);
System.out.println(from.getName() + "使用伤害技能,造成5点伤害," + to.getName() + "剩余血量为" + to.getHp());
}
//使用技能3,强力技能
public void skill3(Role from, Role to) {
if (from.getRound() % 3 == 0) {
int damage = 15;
to.setHp(to.getHp() - damage);
System.out.println(from.getName() + "使用强力技能,造成15点伤害," + to.getName() + "剩余血量为" + to.getHp());
} else {
System.out.println(from.getName() + "使用强力技能,但是失败了,需要等待" + (3 - from.getRound() % 3) + "回合");
}
}
//回合开始
public void turn() {
role1.setRound(role1.getRound() + 1);
role2.setRound(role2.getRound() + 1);
System.out.println("----第" + role1.getRound() + "回合开始----");
//计算谁先攻击
Role first = role1;
Role second = role2;
if (role1.getSpeed() < role2.getSpeed()) {
first = role2;
second = role1;
} else if (role1.getSpeed() == role2.getSpeed()) {
if (Math.random() > 0.5) {
first = role2;
second = role1;
}
}
//先攻击方进行攻击
attack(first, second);
if (second.getHp() <= 0) {
System.out.println(second.getName() + "被" + first.getName() + "击败了");
return;
}
//后攻击方进行攻击
attack(second, first);
if (first.getHp() <= 0) {
System.out.println(first.getName() + "被" + second.getName() + "击败了");
return;
}
}
//开始战斗
public void start() {
while (role1.getHp() > 0 && role2.getHp() > 0) {
turn();
}
}
}
```
在这个基本的战斗类中,我们定义了基本的攻击、技能和回合方法,同时我们也定义了三个技能,即回复技能、伤害技能和强力技能。
其中,回复技能的功能是恢复自身20点HP。伤害技能的功能是每次使用后对对方造成5点伤害。而强力技能则是要求每隔3回合才能使用,使用后对对方造成15点伤害。
除此之外,我们还需要为角色对象增加一个回合数属性,用来计算强力技能的使用时间。
```java
public class Role {
private String name;
private int hp;
private int attack;
private int defense;
private int speed;
//回合数属性
private int round;
public Role(String name, int hp, int attack, int defense, int speed) {
this.name = name;
this.hp = hp;
this.attack = attack;
this.defense = defense;
this.speed = speed;
this.round = 0;
}
//get和set方法省略
}
```
这样我们就完成了一个简单的对战游戏,并增加了三个技能的功能升级。其他功能升级可以按照需求进行扩展。
阅读全文