This repository has been archived on 2024-08-23. You can view files and clone it, but cannot push or open issues or pull requests.
lessons/C++/lesson8/ex5.cpp
2023-07-16 13:23:25 +00:00

106 lines
2.9 KiB
C++

#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";
}
}