


Программирование
+4Помогите с задачей на JAVA, пожалуйста!
Есть два юнита, каждый из них называется «Воин». Каждому устанавливается здоровье в 100 очков. Они бьют друг друга в случайном порядке. Тот, кто бьёт, здоровья не теряет. У того, кого бьют, оно уменьшается на 20 очков от одного удара. После каждого удара надо выводить сообщение, какой юнит атаковал и сколько у противника осталось здоровья. Как только у кого-то заканчивается ресурс здоровья, программа завершается сообщением о том, кто одержал победу.
По дате
По рейтингу
1234567891011121314151617181920212223242526272829303132333435363738
public class Warrior {
private String name;
private int health;
public Warrior(String name) {
this.name = name;
this.health = 100;
}
public void attack(Warrior opponent) {
opponent.health -= 20;
System.out.println(this.name + " атаковал, у " + opponent.name + " осталось " + opponent.health + " здоровья.");
}
public boolean isAlive() {
return this.health > 0;
}
public static void main(String[] args) {
Warrior warrior1 = new Warrior("Воин 1");
Warrior warrior2 = new Warrior("Воин 2");
while (true) {
warrior1.attack(warrior2);
if (!warrior2.isAlive()) {
System.out.println(warrior1.name + " одержал победу!");
break;
}
warrior2.attack(warrior1);
if (!warrior1.isAlive()) {
System.out.println(warrior2.name + " одержал победу!");
break;
}
}
}
}
Больше по теме