From 6c16b9c1d67aff938fabb69f6809ad3d50371336 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Sat, 5 Mar 2022 15:59:52 +0100 Subject: [PATCH] d05 ex02 ok --- d05/ex02/28b_28c | Bin 37296 -> 0 bytes d05/ex02/Makefile | 8 ++- d05/ex02/Shrubbery.txt | 17 ------- d05/ex02/ascii.txt | 18 +++++++ d05/ex02/headers/PresidentialPardonForm.hpp | 28 +++++++++++ d05/ex02/headers/RobotomyRequestForm.hpp | 28 +++++++++++ d05/ex02/headers/ShrubberyCreationForm.hpp | 4 -- d05/ex02/main.cpp | 37 +++++++++++++- d05/ex02/srcs/PresidentialPardonForm.cpp | 47 ++++++++++++++++++ d05/ex02/srcs/RobotomyRequestForm.cpp | 51 ++++++++++++++++++++ d05/ex02/srcs/ShrubberyCreationForm.cpp | 3 +- 11 files changed, 215 insertions(+), 26 deletions(-) delete mode 100755 d05/ex02/28b_28c delete mode 100644 d05/ex02/Shrubbery.txt create mode 100644 d05/ex02/ascii.txt create mode 100644 d05/ex02/headers/PresidentialPardonForm.hpp create mode 100644 d05/ex02/headers/RobotomyRequestForm.hpp create mode 100644 d05/ex02/srcs/PresidentialPardonForm.cpp create mode 100644 d05/ex02/srcs/RobotomyRequestForm.cpp diff --git a/d05/ex02/28b_28c b/d05/ex02/28b_28c deleted file mode 100755 index 4298f09715576e29cd3c4edb2c787d081cb4bb27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37296 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%0AI7H_BQ_pL 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 diff --git a/d05/ex02/Makefile b/d05/ex02/Makefile index 53d7be2..ef6aa67 100644 --- a/d05/ex02/Makefile +++ b/d05/ex02/Makefile @@ -25,12 +25,16 @@ D_SRCS = srcs SRCS = main.cpp \ Bureaucrat.cpp \ AForm.cpp \ - ShrubberyCreationForm.cpp + ShrubberyCreationForm.cpp \ + RobotomyRequestForm.cpp \ + PresidentialPardonForm.cpp D_HEADERS = headers HEADERS = Bureaucrat.hpp \ AForm.hpp \ - ShrubberyCreationForm.hpp + ShrubberyCreationForm.hpp \ + RobotomyRequestForm.hpp \ + PresidentialPardonForm.hpp D_OBJS = builds OBJS = $(SRCS:%.$(EXT)=$(D_OBJS)/%.o) diff --git a/d05/ex02/Shrubbery.txt b/d05/ex02/Shrubbery.txt deleted file mode 100644 index 5a1591f..0000000 --- a/d05/ex02/Shrubbery.txt +++ /dev/null @@ -1,17 +0,0 @@ - * * - * * * - * * * * * - * * * * * - * * * * * * * - * * * * * .# * * - * * * #. .# * * - * "#. #: #" * * * - * * * "#. ##" * - * "### - "## - ##. - .##: - :### - ;### - ,####. - /\/\/\/\/\/.######.\/\/\/\/\ diff --git a/d05/ex02/ascii.txt b/d05/ex02/ascii.txt new file mode 100644 index 0000000..787ae08 --- /dev/null +++ b/d05/ex02/ascii.txt @@ -0,0 +1,18 @@ + * * + * * * + * * * * * + * * * * * + * * * * * * * + * * * * * .# * * + * * * #. .# * * + * "#. #: #" * * * + * * * "#. ##" * + * "### + "## + ##. + .##: + :### + ;### + ,####. +/\/\/\/\/\/.######.\/\/\/\/\ + diff --git a/d05/ex02/headers/PresidentialPardonForm.hpp b/d05/ex02/headers/PresidentialPardonForm.hpp new file mode 100644 index 0000000..027661a --- /dev/null +++ b/d05/ex02/headers/PresidentialPardonForm.hpp @@ -0,0 +1,28 @@ +#ifndef PRESIDENTIALPARDONFORM_HPP +# define PRESIDENTIALPARDONFORM_HPP + +# include "color.h" +# include +# include +# include + +# include "AForm.hpp" + +class PresidentialPardonForm : public AForm { + +public: + + PresidentialPardonForm( std::string target ); + PresidentialPardonForm( PresidentialPardonForm const & src ); + ~PresidentialPardonForm(); + PresidentialPardonForm & operator=( PresidentialPardonForm const & rhs ); + + void formAction() const; + +private: + + PresidentialPardonForm(); +}; + +#endif + diff --git a/d05/ex02/headers/RobotomyRequestForm.hpp b/d05/ex02/headers/RobotomyRequestForm.hpp new file mode 100644 index 0000000..abeb7a9 --- /dev/null +++ b/d05/ex02/headers/RobotomyRequestForm.hpp @@ -0,0 +1,28 @@ +#ifndef ROBOTOMYREQUESTFORM_HPP +# define ROBOTOMYREQUESTFORM_HPP + +# include "color.h" +# include +# include +# include + +# include "AForm.hpp" + +class RobotomyRequestForm : public AForm { + +public: + + RobotomyRequestForm( std::string target ); + RobotomyRequestForm( RobotomyRequestForm const & src ); + ~RobotomyRequestForm(); + RobotomyRequestForm & operator=( RobotomyRequestForm const & rhs ); + + void formAction() const; + +private: + + RobotomyRequestForm(); +}; + +#endif + diff --git a/d05/ex02/headers/ShrubberyCreationForm.hpp b/d05/ex02/headers/ShrubberyCreationForm.hpp index 5b5c84e..0906a12 100644 --- a/d05/ex02/headers/ShrubberyCreationForm.hpp +++ b/d05/ex02/headers/ShrubberyCreationForm.hpp @@ -19,13 +19,9 @@ public: void formAction() const; -// std::string getTarget() const; - private: ShrubberyCreationForm(); -// std::string const _target; - }; #endif diff --git a/d05/ex02/main.cpp b/d05/ex02/main.cpp index 07d22ec..1b8f0c0 100644 --- a/d05/ex02/main.cpp +++ b/d05/ex02/main.cpp @@ -1,6 +1,8 @@ #include "Bureaucrat.hpp" #include "AForm.hpp" #include "ShrubberyCreationForm.hpp" +#include "RobotomyRequestForm.hpp" +#include "PresidentialPardonForm.hpp" #define N_TEST "5" @@ -10,7 +12,7 @@ int main() { std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] " << "Shrubbery ok :" RESET "\n"; { - Bureaucrat b("natasha", 50); + Bureaucrat b("natasha", 1); ShrubberyCreationForm s("sekoia"); std::cout << s << '\n'; @@ -22,7 +24,7 @@ int main() { } std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] " - << "Shrubbery too low signe and execute :" RESET "\n"; + << "Shrubbery too low sign and execute :" RESET "\n"; { Bureaucrat b("jordan", 150); ShrubberyCreationForm s("chemney"); @@ -72,11 +74,42 @@ int main() { std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] " << "Robotomy :" RESET "\n"; { + Bureaucrat b("romeo", 15); + RobotomyRequestForm r("oven"); + + std::cout << r << '\n'; + std::cout << b << '\n'; + std::cout << B_BLUE "b.signForm :" RESET "\n"; + b.signForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + b.executeForm(r); + std::cout << r << '\n'; } std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] " << "Presidential :" RESET "\n"; { + Bureaucrat b("sylvestre", 1); + PresidentialPardonForm p("queen"); + + std::cout << p << '\n'; + std::cout << b << '\n'; + std::cout << B_BLUE "b.signForm :" RESET "\n"; + b.signForm(p); + b.executeForm(p); + std::cout << p << '\n'; } std::cout << "\n"; diff --git a/d05/ex02/srcs/PresidentialPardonForm.cpp b/d05/ex02/srcs/PresidentialPardonForm.cpp new file mode 100644 index 0000000..b22cffb --- /dev/null +++ b/d05/ex02/srcs/PresidentialPardonForm.cpp @@ -0,0 +1,47 @@ +#include "PresidentialPardonForm.hpp" + +#define COPLIEN_COLOR B_CYAN + +/********************************************* + * CONSTRUCTORS + *********************************************/ + +PresidentialPardonForm::PresidentialPardonForm( std::string target ) +: AForm("presidential_creation", target, 25, 5){ + std::cout << COPLIEN_COLOR "RobotomyRequestForm constructor" RESET "\n"; + return; +} + +PresidentialPardonForm::PresidentialPardonForm( PresidentialPardonForm const & src ) +: AForm("presidential_creation", this->getTarget(), 25, 5) { + std::cout << COPLIEN_COLOR "RobotomyRequestForm copy constructor" RESET "\n"; + *this = src; + return; +} + +/********************************************* + * DESTRUCTORS + *********************************************/ + +PresidentialPardonForm::~PresidentialPardonForm() { + std::cout << COPLIEN_COLOR "RobotomyRequestForm destructor" RESET "\n"; + return; +} + +/********************************************* + * OPERATORS + *********************************************/ + +PresidentialPardonForm & PresidentialPardonForm::operator=( PresidentialPardonForm const & rhs ) { + AForm::operator=(rhs); + return *this; +} + +/********************************************* + * PUBLIC MEMBER FUNCTIONS + *********************************************/ + +void PresidentialPardonForm::formAction() const { + std::cout << "Zaphod Beeblebrox pardon " << _target << "\n"; +} + diff --git a/d05/ex02/srcs/RobotomyRequestForm.cpp b/d05/ex02/srcs/RobotomyRequestForm.cpp new file mode 100644 index 0000000..a361f4a --- /dev/null +++ b/d05/ex02/srcs/RobotomyRequestForm.cpp @@ -0,0 +1,51 @@ +#include "RobotomyRequestForm.hpp" + +#define COPLIEN_COLOR B_CYAN + +/********************************************* + * CONSTRUCTORS + *********************************************/ + +RobotomyRequestForm::RobotomyRequestForm( std::string target ) +: AForm("robotomy_creation", target, 72, 45){ + std::cout << COPLIEN_COLOR "RobotomyRequestForm constructor" RESET "\n"; + return; +} + +RobotomyRequestForm::RobotomyRequestForm( RobotomyRequestForm const & src ) +: AForm("robotomy_creation", this->getTarget(), 72, 45) { + std::cout << COPLIEN_COLOR "RobotomyRequestForm copy constructor" RESET "\n"; + *this = src; + return; +} + +/********************************************* + * DESTRUCTORS + *********************************************/ + +RobotomyRequestForm::~RobotomyRequestForm() { + std::cout << COPLIEN_COLOR "RobotomyRequestForm destructor" RESET "\n"; + return; +} + +/********************************************* + * OPERATORS + *********************************************/ + +RobotomyRequestForm & RobotomyRequestForm::operator=( RobotomyRequestForm const & rhs ) { + AForm::operator=(rhs); + return *this; +} + +/********************************************* + * PUBLIC MEMBER FUNCTIONS + *********************************************/ + +void RobotomyRequestForm::formAction() const { + std::cout << "*drill sounds*\n"; + if (std::rand() % 2) + std::cout << _target << " robotomized with success\n"; + else + std::cout << _target << " robotomization failed\n"; +} + diff --git a/d05/ex02/srcs/ShrubberyCreationForm.cpp b/d05/ex02/srcs/ShrubberyCreationForm.cpp index 576083d..f018052 100644 --- a/d05/ex02/srcs/ShrubberyCreationForm.cpp +++ b/d05/ex02/srcs/ShrubberyCreationForm.cpp @@ -42,7 +42,8 @@ ShrubberyCreationForm & ShrubberyCreationForm::operator=( ShrubberyCreationForm *********************************************/ void ShrubberyCreationForm::formAction() const { - std::ofstream ofs("Shrubbery.txt", std::ofstream::out); + std::string name = _target + "_shrubbery"; + std::ofstream ofs(name.c_str(), std::ofstream::out); if (!ofs) {