From 2cf8d711c3dd110555c16913941f865841aa3175 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 6 Apr 2022 08:40:07 +0300 Subject: Fixed folder naming from yesterdays oop practice --- .../06-Practice-05.04.2022/Game.cpp | 37 -------- .../06-Practice-05.04.2022/Game.h | 19 ---- .../06-Practice-05.04.2022/GameCase.cpp | 13 --- .../06-Practice-05.04.2022/GameCase.h | 13 --- .../06-Practice-05.04.2022/NumberHelpers.h | 3 - .../06-Practice-05.04.2022/Player.cpp | 103 --------------------- .../06-Practice-05.04.2022/Player.h | 34 ------- .../06-Practice-05.04.2022/source.cpp | 0 .../07-Practice-05.04.2022/Game.cpp | 37 ++++++++ .../07-Practice-05.04.2022/Game.h | 19 ++++ .../07-Practice-05.04.2022/GameCase.cpp | 13 +++ .../07-Practice-05.04.2022/GameCase.h | 13 +++ .../07-Practice-05.04.2022/NumberHelpers.h | 3 + .../07-Practice-05.04.2022/Player.cpp | 103 +++++++++++++++++++++ .../07-Practice-05.04.2022/Player.h | 34 +++++++ .../07-Practice-05.04.2022/source.cpp | 0 16 files changed, 222 insertions(+), 222 deletions(-) delete mode 100644 Year 1/Object-oriented Programming/06-Practice-05.04.2022/Game.cpp delete mode 100644 Year 1/Object-oriented Programming/06-Practice-05.04.2022/Game.h delete mode 100644 Year 1/Object-oriented Programming/06-Practice-05.04.2022/GameCase.cpp delete mode 100644 Year 1/Object-oriented Programming/06-Practice-05.04.2022/GameCase.h delete mode 100644 Year 1/Object-oriented Programming/06-Practice-05.04.2022/NumberHelpers.h delete mode 100644 Year 1/Object-oriented Programming/06-Practice-05.04.2022/Player.cpp delete mode 100644 Year 1/Object-oriented Programming/06-Practice-05.04.2022/Player.h delete mode 100644 Year 1/Object-oriented Programming/06-Practice-05.04.2022/source.cpp create mode 100644 Year 1/Object-oriented Programming/07-Practice-05.04.2022/Game.cpp create mode 100644 Year 1/Object-oriented Programming/07-Practice-05.04.2022/Game.h create mode 100644 Year 1/Object-oriented Programming/07-Practice-05.04.2022/GameCase.cpp create mode 100644 Year 1/Object-oriented Programming/07-Practice-05.04.2022/GameCase.h create mode 100644 Year 1/Object-oriented Programming/07-Practice-05.04.2022/NumberHelpers.h create mode 100644 Year 1/Object-oriented Programming/07-Practice-05.04.2022/Player.cpp create mode 100644 Year 1/Object-oriented Programming/07-Practice-05.04.2022/Player.h create mode 100644 Year 1/Object-oriented Programming/07-Practice-05.04.2022/source.cpp (limited to 'Year 1/Object-oriented Programming') diff --git a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Game.cpp b/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Game.cpp deleted file mode 100644 index ae5fcc0..0000000 --- a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Game.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "Game.h" - -/* Private */ - -void Game::turn(Player& player, double& bet) { - std::cout << "Enter command: "; - char buffer; - std::cin >> buffer; - - bool result = false; - for (int i = 0; i < this->caseCount; i++) { - if (cases[i].get_comm() == buffer) { - result = cases[i].exec(player, bet); - break; - } - } - - if (result) { - std::cout << "You win!"; - player.addToBalance("", bet); - } - else { - std::cout << "You lost!"; - player.deductFromBalance("", bet); - } - std::cout << " Current balance: " << player.get_balance() << std::endl; -} - -/* Public */ - -Game::Game(const GameCase* cases, unsigned casesCount) { - this->cases = new GameCase[casesCount]; - for (int i = 0; i < casesCount; i++) - this->cases[i] = cases[i]; -} - - diff --git a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Game.h b/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Game.h deleted file mode 100644 index 96feeaf..0000000 --- a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Game.h +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include "Player.h" -#include "GameCase.h" - -class Game { - GameCase* cases; - unsigned caseCount; - - void turn(Player&, double&); - -public: - Game(const GameCase*, unsigned); - - Game(const Game&); - Game& operator=(const Game&); - ~Game(); - - void play(Player&); -}; diff --git a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/GameCase.cpp b/Year 1/Object-oriented Programming/06-Practice-05.04.2022/GameCase.cpp deleted file mode 100644 index 713c94c..0000000 --- a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/GameCase.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include "GameCase.h" - -GameCase::GameCase() : GameCase('\0', nullptr) -{} - -GameCase::GameCase(char command, bool func(const Player&, double&)) { - this->command = command; - this->func = func; -} - -bool GameCase::exec(const Player& player, double& bet) const { - return this->func(player, bet); -} diff --git a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/GameCase.h b/Year 1/Object-oriented Programming/06-Practice-05.04.2022/GameCase.h deleted file mode 100644 index bf5030f..0000000 --- a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/GameCase.h +++ /dev/null @@ -1,13 +0,0 @@ -#include "Player.h" - -class GameCase { - char command; - bool (*func)(const Player&, double&); - -public: - GameCase(); - GameCase(char, bool f(const Player&, double&)); - - char get_comm() const; - bool exec(const Player&, double&) const; -}; diff --git a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/NumberHelpers.h b/Year 1/Object-oriented Programming/06-Practice-05.04.2022/NumberHelpers.h deleted file mode 100644 index 2e1050b..0000000 --- a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/NumberHelpers.h +++ /dev/null @@ -1,3 +0,0 @@ -bool isEven(int); -bool isPrimary(int); -bool isPowerOfTwo(int); diff --git a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Player.cpp b/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Player.cpp deleted file mode 100644 index eaca839..0000000 --- a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Player.cpp +++ /dev/null @@ -1,103 +0,0 @@ -#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 currentBalance) { - 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; -} diff --git a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Player.h b/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Player.h deleted file mode 100644 index 2001c2b..0000000 --- a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/Player.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef PLAYER_HEADER -#define PLAYER_HEADER - -class Player { - char* name; - char* pass; - unsigned age; - double balance; - - void copyFrom(const Player&); - void free() const; - - bool isValidPassword(const char*); -public: - Player(const char*, const char*, unsigned, double); - - Player(const Player&); - Player& operator=(const Player&); - ~Player(); - - const char* get_name() const; - bool set_name(const char*, const char*); - - bool set_password(const char*, const char*); - - unsigned get_age() const; - bool set_age(const char*, unsigned value); - - double get_balance() const; - bool addToBalance(const char*, double); - bool deductFromBalance(const char*, double); -}; - -#endif diff --git a/Year 1/Object-oriented Programming/06-Practice-05.04.2022/source.cpp b/Year 1/Object-oriented Programming/06-Practice-05.04.2022/source.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Game.cpp b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Game.cpp new file mode 100644 index 0000000..ae5fcc0 --- /dev/null +++ b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Game.cpp @@ -0,0 +1,37 @@ +#include "Game.h" + +/* Private */ + +void Game::turn(Player& player, double& bet) { + std::cout << "Enter command: "; + char buffer; + std::cin >> buffer; + + bool result = false; + for (int i = 0; i < this->caseCount; i++) { + if (cases[i].get_comm() == buffer) { + result = cases[i].exec(player, bet); + break; + } + } + + if (result) { + std::cout << "You win!"; + player.addToBalance("", bet); + } + else { + std::cout << "You lost!"; + player.deductFromBalance("", bet); + } + std::cout << " Current balance: " << player.get_balance() << std::endl; +} + +/* Public */ + +Game::Game(const GameCase* cases, unsigned casesCount) { + this->cases = new GameCase[casesCount]; + for (int i = 0; i < casesCount; i++) + this->cases[i] = cases[i]; +} + + diff --git a/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Game.h b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Game.h new file mode 100644 index 0000000..96feeaf --- /dev/null +++ b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Game.h @@ -0,0 +1,19 @@ +#include +#include "Player.h" +#include "GameCase.h" + +class Game { + GameCase* cases; + unsigned caseCount; + + void turn(Player&, double&); + +public: + Game(const GameCase*, unsigned); + + Game(const Game&); + Game& operator=(const Game&); + ~Game(); + + void play(Player&); +}; diff --git a/Year 1/Object-oriented Programming/07-Practice-05.04.2022/GameCase.cpp b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/GameCase.cpp new file mode 100644 index 0000000..713c94c --- /dev/null +++ b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/GameCase.cpp @@ -0,0 +1,13 @@ +#include "GameCase.h" + +GameCase::GameCase() : GameCase('\0', nullptr) +{} + +GameCase::GameCase(char command, bool func(const Player&, double&)) { + this->command = command; + this->func = func; +} + +bool GameCase::exec(const Player& player, double& bet) const { + return this->func(player, bet); +} diff --git a/Year 1/Object-oriented Programming/07-Practice-05.04.2022/GameCase.h b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/GameCase.h new file mode 100644 index 0000000..bf5030f --- /dev/null +++ b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/GameCase.h @@ -0,0 +1,13 @@ +#include "Player.h" + +class GameCase { + char command; + bool (*func)(const Player&, double&); + +public: + GameCase(); + GameCase(char, bool f(const Player&, double&)); + + char get_comm() const; + bool exec(const Player&, double&) const; +}; diff --git a/Year 1/Object-oriented Programming/07-Practice-05.04.2022/NumberHelpers.h b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/NumberHelpers.h new file mode 100644 index 0000000..2e1050b --- /dev/null +++ b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/NumberHelpers.h @@ -0,0 +1,3 @@ +bool isEven(int); +bool isPrimary(int); +bool isPowerOfTwo(int); diff --git a/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Player.cpp b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Player.cpp new file mode 100644 index 0000000..eaca839 --- /dev/null +++ b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Player.cpp @@ -0,0 +1,103 @@ +#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 currentBalance) { + 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; +} diff --git a/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Player.h b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Player.h new file mode 100644 index 0000000..2001c2b --- /dev/null +++ b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/Player.h @@ -0,0 +1,34 @@ +#ifndef PLAYER_HEADER +#define PLAYER_HEADER + +class Player { + char* name; + char* pass; + unsigned age; + double balance; + + void copyFrom(const Player&); + void free() const; + + bool isValidPassword(const char*); +public: + Player(const char*, const char*, unsigned, double); + + Player(const Player&); + Player& operator=(const Player&); + ~Player(); + + const char* get_name() const; + bool set_name(const char*, const char*); + + bool set_password(const char*, const char*); + + unsigned get_age() const; + bool set_age(const char*, unsigned value); + + double get_balance() const; + bool addToBalance(const char*, double); + bool deductFromBalance(const char*, double); +}; + +#endif diff --git a/Year 1/Object-oriented Programming/07-Practice-05.04.2022/source.cpp b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/source.cpp new file mode 100644 index 0000000..e69de29 -- cgit v1.3.1-23-gd82d