#include <iostream>
// Modifies health directly using a reference parameter
void takeDamage(int& health, int damage) {
health -= damage;
if (health < 0) {
health = 0;
}
}
// Modifies health directly, ensuring it doesn't exceed maxHealth
void heal(int& health, int amount, int maxHealth) {
health += amount;
if (health > maxHealth) {
health = maxHealth;
}
}
int main() {
int currentHealth = 80;
const int maxHealth = 100;
std::cout << "Starting Health: " << currentHealth << "\n";
// Modifies currentHealth in place
std::cout << "Taking 30 damage...\n";
takeDamage(currentHealth, 30);
std::cout << "Health after damage: " << currentHealth << "\n";
// Modifies currentHealth in place, capping at maxHealth
std::cout << "Healing 60 points...\n";
heal(currentHealth, 60, maxHealth);
std::cout << "Health after healing: " << currentHealth << "\n";
return 0;
}