#include <iostream>
#include <string>

class Character {
   public:
    std::string name;
    int level;
    int exp;
    int health;
    int attack;
    int protection;

    Character(std::string name) {
        this->name = name;
        level = 0;
        exp = 0;
        health = 10;
        attack = 2;
        protection = 2;
    }

    void levelUp() {
        level++;
        health += 5;
        attack++;
        protection++;
    }

    void gainExp(int amount) {
        exp += amount;
    }

    int getHelth() {
        return health;
    }

    int getLevel() {
        return level;
    }

    bool isAlive() {
        return health > 0;
    }

    void attack_character(Character& target) {
        if (target.protection == 0) {
            target.health -= attack;
            std::cout << target.name << " was attacked\n";
        } else {
            target.protection--;
            std::cout << target.name << " has protection\n";
        }
    }
};

int main() {
    Character vasiya("Вася");
    Character petyia("Петя");

    vasiya.levelUp();
    vasiya.levelUp();
    vasiya.levelUp();

    petyia.levelUp();
    petyia.levelUp();

    vasiya.attack_character(petyia);
    vasiya.attack_character(petyia);

    petyia.attack_character(vasiya);
    petyia.attack_character(vasiya);

    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный
    vasiya.attack_character(vasiya);  // Вася не умный

    if (vasiya.isAlive()) {
        std::cout << "Вася как-то выжил\n";
    } else {
        std::cout << "Вася умер\n";
    }

    if (petyia.isAlive()) {
        std::cout << "Петя как-то выжил\n";
    } else {
        std::cout << "Петя умер\n";
    }
}
