#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
// Structure to define a character
struct Character {
string name;
int health;
int attack;
int defense;
// Function to perform an attack
void attackEnemy(Character &enemy) {
int damage = attack - enemy.defense;
if (damage < 0) damage = 0;
enemy.health -= damage;
cout << name << " attacks " << enemy.name << " for " << damage << " damage!" << endl;
}
// Function to check if the character is alive
bool isAlive() {
return health > 0;
}
};
int main() {
srand(static_cast<unsigned int>(time(0))); // Seed the random number generator
// Create the player character
Character player;
player.name = "Hero";
player.health = 100;
player.attack = 15;
player.defense = 5;
// Create the enemy character
Character enemy;
enemy.name = "Goblin";
enemy.health = 50;
enemy.attack = 10;
enemy.defense = 3;
cout << "A wild " << enemy.name << " appears!" << endl;
// Battle loop
while (player.isAlive() && enemy.isAlive()) {
player.attackEnemy(enemy);
if (enemy.isAlive()) {
enemy.attackEnemy(player);
}
cout << player.name << " health: " << player.health << endl;
cout << enemy.name << " health: " << enemy.health << endl;
}
// Determine the outcome of the battle
if (player.isAlive()) {
cout << player.name << " has defeated the " << enemy.name << "!" << endl;
} else {
cout << player.name << " has been defeated by the " << enemy.name << "..." << endl;
}
return 0;
}