Top.Mail.Ru
Ответы
Аватар пользователя
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+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; 
            } 
        } 
    } 
}