diff options
Added work from today's practice
9 files changed, 132 insertions, 0 deletions
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 <fstream> +#include <iostream> + +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 |
