#include "Player.h" #include /* Private */ void Player::copyFrom(const Player& other) { this->name = new char[strlen(other.name) + 1]; strcpy(this->name, other.name); this->pass = new char[strlen(other.pass) + 1]; strcpy(this->pass, other.pass); this->age = other.age; this->balance = other.balance; } void Player::free() const { delete[] this->name; delete[] this->pass; } bool Player::isValidPassword(const char* passwordAttempt) { return strcmp(this->pass, passwordAttempt) == 0; } /* Public */ Player::Player(const char* name, const char* pass, unsigned age, double balance) { this->name = new char[strlen(name) + 1]; strcpy(this->name, name); this->pass = new char[strlen(pass) + 1]; strcpy(this->pass, pass); this->age = age; this->balance = balance; } Player::Player(const Player& other) { this->copyFrom(other); } Player& Player::operator=(const Player& other) { if (this != &other) { this->free(); this->copyFrom(other); } return *this; } Player::~Player() { this->free(); } const char* Player::get_name() const { return this->name; } bool Player::set_name(const char* password, const char* name) { if (!this->isValidPassword(password)) return false; delete[] this->name; this->name = new char[strlen(name) + 1]; strcpy(this->name, name); return true; } bool Player::set_password(const char* password, const char* newPassword) { if (!this->isValidPassword(password)) return false; delete[] this->pass; this->pass = new char[strlen(newPassword) + 1]; strcpy(this->pass, newPassword); return true; } unsigned Player::get_age() const { return this->age; } bool Player::set_age(const char* password, unsigned value) { if (!this->isValidPassword(password)) return false; this->age = value; return true; } double Player::get_balance() const { return this->balance; } bool Player::addToBalance(const char* password, double value) { if (!this->isValidPassword(password)) return false; this->balance += value; return true; } bool Player::deductFromBalance(const char* password, double value) { if (!this->isValidPassword(password)) return false; this->balance -= value; return true; }