/
ket12werw
/
Zadanierep
Обзор
Документация
Войти
/
ket12werw
/
Zadanierep
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Player.java
109 строк
4 KB
ket12werw
Create: Employee.java, Player.java
09 июл 2026, 13:32
Верифицирован
09 июл 2026, 13:32
56b84db
Код
Авторство
О чём код?
public class Player { // Поля класса закрыты от прямого изменения извне private String name; private int health; private int coins; // Конструктор — вызывается при создании нового игрока public Player(String playerName) { this.name = playerName; this.health = 100; // Начинаем с полным здоровьем this.coins = 0; // Монет в начале нет } /* ========== ГЕТТЕРЫ (для получения данных) ========== */ public String getName() { return name; } public int getHealth() { return health; } public int getCoins() { return coins; } /* ========== ИГРОВЫЕ МЕТОДЫ (бизнес-логика) ========== */ // Получение урона public void takeDamage(int damage) { health -= damage; // Проверка: здоровье не может быть меньше нуля if (health < 0) { health = 0; } } // Лечение public void heal(int amount) { // Исправлено: теперь значение прибавляется к текущему здоровью health += amount; // Проверка: здоровье не может подняться выше 100 if (health > 100) { health = 100; } } // Добавление монет public void addCoins(int amount) { // Нельзя добавить отрицательное количество или ноль if (amount > 0) { coins += amount; } } // Проверка, жив ли игрок public boolean isAlive() { return health > 0; } // Метод для красивого вывода состояния игрока одной строкой @Override public String toString() { return "Здоровье: " + health + "\nМонеты: " + coins; } } class Main { public static void main(String[] args) { // Создаем объект игрока Player player = new Player("Игрок"); System.out.println("Игрок: " + player.getName()); System.out.println("Монеты в начале: " + player.getCoins()); System.out.println(); int round = 1; // Бой продолжается, пока метод isAlive() возвращает true (здоровье больше 0) while (player.isAlive()) { System.out.println("Раунд " + round); // Ход раунда согласно условию задачи player.takeDamage(30); System.out.println("Игрок получил 30 урона\n" + player); player.addCoins(10); System.out.println("Монеты: " + player.getCoins()); // Особые условия во втором раунде if (round == 2) { player.heal(20); System.out.println("Игрок восстановил 20 здоровья"); System.out.println("Здоровье после лечения: " + player.getHealth()); } System.out.println(); // Пустая строка для разделения раундов round++; } // Итоговое сообщение после завершения цикла System.out.println("Игрок " + player.getName() + " проиграл"); System.out.println("Накоплено монет: " + player.getCoins()); } }