From ff171c3bc508e4a82e2329c550532f60a8be2e38 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Tue, 17 May 2022 21:14:55 +0300 Subject: Added work from today's practice --- .../12-Practice-17.05.2022/ex1/Guest.h | 11 ++++++++ .../12-Practice-17.05.2022/ex1/LoggedInPlayer.h | 5 ++++ .../12-Practice-17.05.2022/ex1/Player.h | 29 +++++++++++++++++++++ .../12-Practice-17.05.2022/ex1/PremiumPlayer.h | 15 +++++++++++ .../12-Practice-17.05.2022/ex2/Penguin.h | 9 +++++++ .../12-Practice-17.05.2022/ex2/Prize.h | 30 ++++++++++++++++++++++ .../12-Practice-17.05.2022/ex2/main.cpp | 6 +++++ .../12-Practice-17.05.2022/ex2/viz/pacman.txt | 11 ++++++++ .../12-Practice-17.05.2022/ex2/viz/penguin.txt | 16 ++++++++++++ 9 files changed, 132 insertions(+) create mode 100644 Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/Guest.h create mode 100644 Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/LoggedInPlayer.h create mode 100644 Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/Player.h create mode 100644 Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/PremiumPlayer.h create mode 100644 Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/Penguin.h create mode 100644 Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/Prize.h create mode 100644 Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/main.cpp create mode 100644 Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/viz/pacman.txt create mode 100644 Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/viz/penguin.txt (limited to 'Year 1/Object-oriented Programming') diff --git a/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/Guest.h b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/Guest.h new file mode 100644 index 0000000..1032bbe --- /dev/null +++ b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/Guest.h @@ -0,0 +1,11 @@ +#include "Player.h" + +class Guest : public Player { + unsigned demoDuration; + +public: + + bool levelUp() { + return false; + } +}; diff --git a/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/LoggedInPlayer.h b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/LoggedInPlayer.h new file mode 100644 index 0000000..1a33433 --- /dev/null +++ b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/LoggedInPlayer.h @@ -0,0 +1,5 @@ +#include "Player.h" + +class LoggedInPlayer : public Player { + char password[9]; // 8 chars + '\0' +}; diff --git a/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/Player.h b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/Player.h new file mode 100644 index 0000000..e57eea2 --- /dev/null +++ b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/Player.h @@ -0,0 +1,29 @@ +enum Star { + One = 128, + Two = 256, + Three = 512, + Four = 1024, + Five = 2048, +}; + +class Player { +protected: + int ID; + short points; + Star star; + +public: + Player() { + ID = 0; + points = 0; + star = One; + } + virtual bool levelUp() { + bool can = star < Five && points >= (star << 1); + if (can) { + star = (Star)(star << 1); + points -= star; + } + return can; + } +}; diff --git a/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/PremiumPlayer.h b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/PremiumPlayer.h new file mode 100644 index 0000000..0c8e9e1 --- /dev/null +++ b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex1/PremiumPlayer.h @@ -0,0 +1,15 @@ +#include "LoggedInPlayer.h" + +class PremiumPlayer : public LoggedInPlayer { + char name[1024]; + +public: + bool levelUp() { + bool can = points >= 256; + if (can) { + points -= 256; + star = (Star)(star << 1); + } + return can; + } +}; diff --git a/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/Penguin.h b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/Penguin.h new file mode 100644 index 0000000..8546670 --- /dev/null +++ b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/Penguin.h @@ -0,0 +1,9 @@ +#include "Prize.h" + +class Penguin : public Prize { +public: + Penguin(unsigned price, unsigned points) : Prize(price, points) {} + void vizualize() const { + print("viz/penguin.txt"); + } +}; diff --git a/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/Prize.h b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/Prize.h new file mode 100644 index 0000000..6b68613 --- /dev/null +++ b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/Prize.h @@ -0,0 +1,30 @@ +#include +#include + +class Prize { +protected: + unsigned money; + unsigned points; + +public: + Prize(unsigned price, unsigned points) { + this->money = price; + this->points = points; + } + virtual void vizualize() const = 0; +}; + + +void print(const char* fileName) { + std::ifstream file(fileName); + if (!file.is_open()) return; + + char buffer[1024]; + while (!file.eof()) { + file.read(buffer, 1024); + std::cout << buffer; + } + std::cout << std::endl; + file.close(); +} + diff --git a/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/main.cpp b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/main.cpp new file mode 100644 index 0000000..0bdbe73 --- /dev/null +++ b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/main.cpp @@ -0,0 +1,6 @@ +#include "Penguin.h" + +int main() { + Penguin penguinPrize(15, 64); + penguinPrize.vizualize(); +} diff --git a/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/viz/pacman.txt b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/viz/pacman.txt new file mode 100644 index 0000000..72b1027 --- /dev/null +++ b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/viz/pacman.txt @@ -0,0 +1,11 @@ +================================================. + .-. .-. .--. | + | OO| | OO| / _.-' .-. .-. .-. .''. | + | | | | \ '-. '-' '-' '-' '..' | + '^^^' '^^^' '--' | +===============. .-. .================. .-. | + | | | | | '-' | + | | | | | | + | ':-:' | | .-. | +l42 | '-' | | '-' | +===============' '================' | \ No newline at end of file diff --git a/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/viz/penguin.txt b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/viz/penguin.txt new file mode 100644 index 0000000..f734113 --- /dev/null +++ b/Year 1/Object-oriented Programming/12-Practice-17.05.2022/ex2/viz/penguin.txt @@ -0,0 +1,16 @@ + _nnnn_ + dGGGGMMb + @p~qp~~qMb + M|@||@) M| + @,----.JM| + JS^\__/ qKL + dZP qKRb + dZP qKKb + fZP SMMb + HZM MMMM + FqM MMMM + __| ". |\dS"qML + | `. | `' \Zq +_) \.___.,| .' +\____ )MMMMMP| .' + `-' `--' hjm \ No newline at end of file -- cgit v1.3.1-23-gd82d