From 088a54d0362b1534d6d0655ab4d3c0f9d6299486 Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Tue, 22 Feb 2022 18:49:15 +0100 Subject: [PATCH] d03 ex01 refonte complete ok --- d03/ex01/ClapTrap.cpp | 21 +++++-- d03/ex01/ClapTrap.hpp | 1 - d03/ex01/Makefile | 3 +- d03/ex01/ScavTrap.cpp | 16 +----- d03/ex01/color.h | 24 -------- d03/ex01/main.cpp | 103 +++++++++++++++------------------- d03/ex01/robots | Bin 34368 -> 0 bytes d03/test_inheritance/a.out | Bin 17992 -> 17584 bytes d03/test_inheritance/main.cpp | 44 +++++++-------- 9 files changed, 87 insertions(+), 125 deletions(-) delete mode 100644 d03/ex01/color.h delete mode 100755 d03/ex01/robots diff --git a/d03/ex01/ClapTrap.cpp b/d03/ex01/ClapTrap.cpp index d2ad79d..54a4994 100644 --- a/d03/ex01/ClapTrap.cpp +++ b/d03/ex01/ClapTrap.cpp @@ -1,5 +1,16 @@ #include "ClapTrap.hpp" +# define B_GRAY "\e[1;30m" +# define B_RED "\e[1;31m" +# define B_GREEN "\e[1;32m" +# define B_YELLOW "\e[1;33m" +# define B_BLUE "\e[1;34m" +# define B_PURPLE "\e[1;35m" +# define B_CYAN "\e[1;36m" +# define B_WHITE "\e[1;37m" + +# define RESET "\e[0m" + /********************************************* * CONSTRUCTORS *********************************************/ @@ -12,7 +23,7 @@ ClapTrap::ClapTrap( std::string name ) { _energy = _dEnergy; _attack = _dAttack; _number = getTotalNumber(); - std::cout << _class << " " << _name << " nb:" << _number << " created\n"; + std::cout << _class << " " << _name << "-" << _number << " created\n"; return; } @@ -21,7 +32,7 @@ ClapTrap::ClapTrap( ClapTrap const & src ) { _class = _dClass; *this = src; _number = getTotalNumber(); - std::cout << _class << " " << _name << "-" << _number << " copied from " << src._class << "-" << src._name << "-" << src._number << "\n"; + std::cout << _class << " " << _name << "-" << _number << " copied from " << src._class << " " << src._name << "-" << src._number << "\n"; return; } @@ -77,7 +88,7 @@ void ClapTrap::attack(const std::string & target) { std::ostringstream state; state << B_CYAN "[" B_GREEN << _class[0] << _number << B_PURPLE "h,e,a" B_CYAN ":" B_BLUE << _hit << "," << _energy << "," << _attack << B_CYAN "->"; - action << _class << " " << _name; + action << _class << " " << _name << "-" << _number; if (_energy > 0 && _hit > 0) { @@ -105,7 +116,7 @@ void ClapTrap::takeDamage(unsigned int amount) { std::ostringstream state; state << B_CYAN "[" B_GREEN << _class[0] << _number << B_PURPLE "h,e,a" B_CYAN ":" B_BLUE << _hit << "," << _energy << "," << _attack << B_CYAN "->"; - action << _class << " " << _name; + action << _class << " " << _name << "-" << _number; if (_hit > 0) { @@ -127,7 +138,7 @@ void ClapTrap::beRepaired(unsigned int amount) { std::ostringstream state; state << B_CYAN "[" B_GREEN << _class[0] << _number << B_PURPLE "h,e,a" B_CYAN ":" B_BLUE << _hit << "," << _energy << "," << _attack << B_CYAN "->"; - action << _class << " " << _name; + action << _class << " " << _name << "-" << _number; if (_energy > 0 && _hit > 0) { diff --git a/d03/ex01/ClapTrap.hpp b/d03/ex01/ClapTrap.hpp index 7238065..a0beeca 100644 --- a/d03/ex01/ClapTrap.hpp +++ b/d03/ex01/ClapTrap.hpp @@ -4,7 +4,6 @@ #include #include #include -#include class ClapTrap { diff --git a/d03/ex01/Makefile b/d03/ex01/Makefile index 646ad10..6c6c6d0 100644 --- a/d03/ex01/Makefile +++ b/d03/ex01/Makefile @@ -7,8 +7,7 @@ NAME = robots CC = c++ -#CFLAGS = -Wall -Wextra -Werror $(INCLUDES) -std=c++98 -CFLAGS = $(INCLUDES) -std=c++98 +CFLAGS = -Wall -Wextra -Werror $(INCLUDES) -std=c++98 VPATH = $(D_SRCS) diff --git a/d03/ex01/ScavTrap.cpp b/d03/ex01/ScavTrap.cpp index 6eec95b..fa611e7 100644 --- a/d03/ex01/ScavTrap.cpp +++ b/d03/ex01/ScavTrap.cpp @@ -13,7 +13,7 @@ ScavTrap::ScavTrap( std::string name ) : ClapTrap(name) { return; } -ScavTrap::ScavTrap( ScavTrap const & src ) : ClapTrap() { +ScavTrap::ScavTrap( ScavTrap const & src ) { _class = _dClass; *this = src; _number = getTotalNumber(); @@ -35,20 +35,8 @@ ScavTrap::~ScavTrap( void ) { *********************************************/ ScavTrap & ScavTrap::operator=( ScavTrap const & rhs ) { - - if ( this != &rhs ) - { - ClapTrap::operator=(rhs); -// _name = rhs.getName(); -// _hit = rhs.getHit(); -// _energy = rhs.getEnergy(); -// _attack = rhs.getAttack(); -// _name = rhs.getName(); - } - - std::cout << _class << "T " << _name << "-" << _number << " assigned\n"; + ClapTrap::operator=(rhs); return *this; - } /********************************************* diff --git a/d03/ex01/color.h b/d03/ex01/color.h deleted file mode 100644 index e313f5f..0000000 --- a/d03/ex01/color.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef COLOR_H -# define COLOR_H - -# define GRAY "\e[0;30m" -# define RED "\e[0;31m" -# define GREEN "\e[0;32m" -# define YELLOW "\e[0;33m" -# define BLUE "\e[0;34m" -# define PURPLE "\e[0;35m" -# define CYAN "\e[0;36m" -# define WHITE "\e[0;37m" - -# define B_GRAY "\e[1;30m" -# define B_RED "\e[1;31m" -# define B_GREEN "\e[1;32m" -# define B_YELLOW "\e[1;33m" -# define B_BLUE "\e[1;34m" -# define B_PURPLE "\e[1;35m" -# define B_CYAN "\e[1;36m" -# define B_WHITE "\e[1;37m" - -# define RESET "\e[0m" - -#endif diff --git a/d03/ex01/main.cpp b/d03/ex01/main.cpp index f856305..82ebc00 100644 --- a/d03/ex01/main.cpp +++ b/d03/ex01/main.cpp @@ -1,47 +1,34 @@ +#include "ClapTrap.hpp" #include "ScavTrap.hpp" -void goAttack(ClapTrap & robot1, ClapTrap & robot2) { +#include +#include +# define B_GRAY "\e[1;30m" +# define B_RED "\e[1;31m" +# define B_GREEN "\e[1;32m" +# define B_YELLOW "\e[1;33m" +# define B_BLUE "\e[1;34m" +# define B_PURPLE "\e[1;35m" +# define B_CYAN "\e[1;36m" +# define B_WHITE "\e[1;37m" + +# define RESET "\e[0m" + +# define COLOR1 B_YELLOW + +template < typename U, typename V > +void goAttack(U & robot1, V & robot2) { + std::stringstream ss; + std::string num; + ss << robot2.getNumber(); + ss >> num; std::cout << "."; - robot1.attack(robot2.getName()); + robot1.attack(robot2.getName() + "-" + num); std::cout << " "; robot2.takeDamage(robot1.getAttack()); std::cout << " "; robot2.beRepaired(robot1.getAttack()); - -} - -void goAttack(ScavTrap & robot1, ScavTrap & robot2) { - - std::cout << "."; - robot1.attack(robot2.getName()); - std::cout << " "; - robot2.takeDamage(robot1.getAttack()); - std::cout << " "; - robot2.beRepaired(robot1.getAttack()); - -} - -void goAttack(ClapTrap & robot1, ScavTrap & robot2) { - - std::cout << "."; - robot1.attack(robot2.getName()); - std::cout << " "; - robot2.takeDamage(robot1.getAttack()); - std::cout << " "; - robot2.beRepaired(robot1.getAttack()); - -} - -void goAttack(ScavTrap & robot1, ClapTrap & robot2) { - - std::cout << "."; - robot1.attack(robot2.getName()); - std::cout << " "; - robot2.takeDamage(robot1.getAttack()); - std::cout << " "; - robot2.beRepaired(robot1.getAttack()); - } int main() { @@ -52,42 +39,44 @@ int main() { ScavTrap robot3("robot3"); ClapTrap robot4("robot4"); -std::cout << "\nassignement 1 (ClapTrap(ScavTrap)):\n"; +std::cout << COLOR1 "\nassignement 1 (ClapTrap(ScavTrap)):\n" RESET; ClapTrap robot5(robot2); // robot5.guardGate(); goAttack(robot5, robot2); -std::cout << "\nassignement 2 (ScavTrap(ScavTrap)):\n"; +std::cout << COLOR1 "\nassignement 2 (ScavTrap(ScavTrap)):\n" RESET; ScavTrap robot6(robot2); robot6.guardGate(); goAttack(robot6, robot2); robot2.takeDamage(robot6.getAttack()); - robot6 = robot6; + robot6 = robot2; goAttack(robot6, robot2); -std::cout << "\nassignement 3 (ScavTrap(ClapTrap)):\n"; +std::cout << COLOR1 "\nassignement 3 (ScavTrap(ClapTrap)):\n" RESET; // ScavTrap robot7(robot1); -std::cout << "\nassignement 4 (ClapTrap(ClapTrap)):\n"; +std::cout << COLOR1 "\nassignement 4 (ClapTrap(ClapTrap)):\n" RESET; ClapTrap robot7(robot1); goAttack(robot7, robot1); -std::cout << "\nwar:\n"; -// goAttack(robot1, robot2); -// goAttack(robot2, robot1); -// goAttack(robot1, robot3); -// robot2.guardGate(); -// goAttack(robot1, robot4); -// goAttack(robot4, robot2); -// goAttack(robot2, robot3); -// goAttack(robot2, robot4); -// robot3.guardGate(); -// goAttack(robot3, robot1); -// robot2.guardGate(); -// goAttack(robot3, robot4); -// goAttack(robot2, robot1); -// goAttack(robot2, robot4); -// goAttack(robot1, robot3); +std::cout << COLOR1 "\nwar:\n" RESET; + goAttack(robot1, robot2); + goAttack(robot2, robot1); + goAttack(robot1, robot3); + robot2.guardGate(); + goAttack(robot1, robot4); + goAttack(robot4, robot2); + goAttack(robot2, robot3); + goAttack(robot2, robot4); + robot3.guardGate(); + goAttack(robot3, robot1); + robot2.guardGate(); + goAttack(robot3, robot4); + goAttack(robot2, robot1); + goAttack(robot2, robot4); + goAttack(robot1, robot3); + +std::cout << COLOR1 "\ndestruction:\n" RESET; return 0; } diff --git a/d03/ex01/robots b/d03/ex01/robots deleted file mode 100755 index 66b53a34b38d191453c9d6d7d7dd9ea6e4d7f9c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34368 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 IkdPJs2UVoGq5uE@ diff --git a/d03/test_inheritance/a.out b/d03/test_inheritance/a.out index 5f80b70a47f2f791c0b31646af1d5b60b450ae5f..c12ee8d3ac978f66dfed7be9f02439d335f43813 100755 GIT binary patch delta 3408 zcmZ`+eN0=|6~EWdUl<6si(_mGwnLkM5^OLgC9(-Nwi~0+lr#UpGcXMZ$PTW!&_v9?kZ(N=V-wst5>kg_RcUA1VLmTFz)WKm06){&0%?cDe7 z3xu^7z4v?f{La@s@4j=*xnuNHj^=Ca3n6lQgh>l2C1K(s)stAWCI;_+4xScjZN=zJ z&6to$`MDV06gJW85YgJ{LHYhy`Ti=q!v$>x^k^%n5#AT<@KbFAO)|OeCVJWcr!{vO z&f=4WIKiNMLO0Mi6c^z}r~-n)7MRyo$oazWiV z&(s~q_aG1_OB4r1y?I1la8fRcr38I#M4riponjI5*}(Njq0wM>9O4z`uax-iV!j9& zgOnjii{S->j~d_)20NTLl$0*CDJ*-FMQ{tH%Z3tYF_zF0h#L=5-SpRN|1cake|GO1 zm~vvGv`vQAcTiulUGx&Nm`_Z!-o%H*gzgilwA32sh_+@UayEDiVCW#4Qkh>MVqg?NAw zNs<_UpwOGxTyk$MPBOZ}yGSI)_btuMep*)jIech+GMoF}Qer&5bQa$zA^Cl?dB$`n za{o+x|GGKB*xc{}YAmo!-LlW_rJM$rK2pMJ)B4gDOjIX3j-%rhd+vFh?31I(K2eq% zUSt8syBBlj{J!iegF6FaTHP2_u8=6n#da$Zx3P#nUS>;S5&th?l(J-hD4M?#{YfxPD{dN7Emb zTZ`d>@z8O%F8gR|DD6%S4T<~vQyFof-#u_3J($W244O!9dQcom_kIQICMK*LtrUWX z5XM8NBR-FK^oAsz$5-;=Cz7;)_%FnEGj2=mr;=2Hf@;Jq zh>sw4A`T+R)>u0Z;Pe+*_y<;-X=1V+Gs`3YC*;3u-OL2H6?qMH-UhKITC|K$1x%8)rbx!*f(~!ebIQP+62gH@u?C1k?V3iI z^R{_to-fe=3OvzYG zPC=y62K|jsX=cjdTBDc7fckAhIXNez4Uw+l`Z zhIjmSSn!WjI!RYV(ZOQLBZ_xQn7_kK^#b#My2(ei@P3nxI^jP}Db2eZU~j-{QIBG7 zM+lqxA zvJfjH<)Kx8JcDxi7PSXw8!8IMNTac4#O72XJZ+{_M> zTV0m5ix5$2&mKh^wv@Gnn`Cl=?>ekFF=MK1Ore~`Uc1B@l$*b#(CuhvMn63f#a_Li zk@cOJZdes5IM32@e1)L&6V^JX|Zdn1dtkSezFbg#FDwl3!%E|Wc5S&DQ>NP zG7rnv-<7Qe@&g$)& zM|(8s_xiofB)NB2pdHVVXk&Z?6?=yUl8>kQd;8Lixi6+1BMQkiQ@i62?cANbZ5cQ) zoY@r@d6ZNpJt{&~&|17x_8Zur&g_D1!7N-1u3xvxr9VCb9|pT@dw1=Ye-QGtdU}#g z-T-XXRa;h+dC2J#pUby9d~d-eYSqw^bg delta 4251 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 diff --git a/d03/test_inheritance/main.cpp b/d03/test_inheritance/main.cpp index 9694812..fd50b30 100644 --- a/d03/test_inheritance/main.cpp +++ b/d03/test_inheritance/main.cpp @@ -2,38 +2,38 @@ class Base { public: - Base() { - std::cout << "base default constructor\n";} - Base(int i) { - std::cout << "base parameters constructor\n";} - Base(Base const & src) { - std::cout << "base copy constructor\n"; *this = src;} + Base () : _n(1) {} Base & operator=(Base const & rhs) { - std::cout << "base assignation operator\n"; return *this;} - ~Base() { - std::cout << "base default destructor\n";} + _n = rhs.getN(); + std::cout << "base assignation operator\n"; + return *this; + } + int getN() const { + return _n; + } + void putN(int i) { + _n = i; + } +protected: + int _n; }; class Derived : public Base { public: - Derived() { - std::cout << "derived default constructor\n";} - Derived(int i) { - std::cout << "derived parameters constructor\n";} - Derived(Derived const & src) { - std::cout << "derived copy constructor\n"; *this = src;} Derived & operator=(Derived const & rhs) { - std::cout << "derived assignation operator\n"; return *this;} - ~Derived() { - std::cout << "derived default destructor\n";} + Base::operator=(rhs); + std::cout << "derived assignation operator\n"; + return *this;} }; int main () { - Base base1(1); std::cout << "\n"; - Derived derived1(1); std::cout << "\n"; - Base base2(derived1); std::cout << "\n"; - Derived derived2(base1); + Derived foo1; + Derived foo2; + foo2.putN(2); + std::cout << foo1.getN() << " " << foo2.getN() << "\n"; + foo2 = foo1; + std::cout << foo1.getN() << " " << foo2.getN() << "\n"; return 0; }