From 5b836dd5d4389a737cabeb995721190ce853608d Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Thu, 17 Feb 2022 13:43:18 +0100 Subject: [PATCH] d03 ex00 ok --- d03/ex00/ClapTrap.cpp | 102 ++++++++++++++++++++++++++++++++++++++++++ d03/ex00/ClapTrap.hpp | 39 ++++++++++++++++ d03/ex00/Makefile | 5 ++- d03/ex00/action | Bin 0 -> 19272 bytes d03/ex00/color.h | 24 ++++++++++ d03/ex00/main.cpp | 13 ++++++ 6 files changed, 181 insertions(+), 2 deletions(-) create mode 100644 d03/ex00/ClapTrap.cpp create mode 100644 d03/ex00/ClapTrap.hpp create mode 100755 d03/ex00/action create mode 100644 d03/ex00/color.h create mode 100644 d03/ex00/main.cpp diff --git a/d03/ex00/ClapTrap.cpp b/d03/ex00/ClapTrap.cpp new file mode 100644 index 0000000..0a6ec83 --- /dev/null +++ b/d03/ex00/ClapTrap.cpp @@ -0,0 +1,102 @@ +#include "ClapTrap.hpp" + +/* + * default/parametric constructor + */ + +ClapTrap::ClapTrap( void ) { + return; +} + +/* + * destructor + */ + +ClapTrap::~ClapTrap( void ) { + return; +} + +/* + * copy constructor + */ + +ClapTrap::ClapTrap( ClapTrap const & src ) { + *this = src; + return; +} + +/* + * assignement operator + */ + +ClapTrap & ClapTrap::operator=( ClapTrap const & rhs ) { + + if ( this != &rhs ) + { + this->_hit = rhs.getHit(); + this->_energy = rhs.getEnergy(); + this->_attack = rhs.getAttack(); + } + + return *this; + +} + +/* + * constructor + */ + +ClapTrap::ClapTrap( std::string name ) : _name(name) { + _hit = 10; + _energy = 10; + _attack = 1; + return; +} + +/* + * getters + */ + +std::string ClapTrap::getName() const {return _name;} +int ClapTrap::getHit() const {return _hit;} +int ClapTrap::getEnergy() const {return _energy;} +int ClapTrap::getAttack() const {return _attack;} + +/* + * robots + */ + +void ClapTrap::attack(const std::string & target) { + std::cout << B_CYAN "[" B_PURPLE "h,e,a" B_CYAN ":" B_BLUE << _hit << "," << _energy << "," << _attack << B_CYAN "->"; + + _energy--; + + std::cout << B_BLUE << _hit << "," << _energy << "," << _attack << B_CYAN "]" RESET + << " ClapTrap " << _name + << " attacked " << target + << ", causing " B_YELLOW << _attack << RESET + << " points of damage!" << '\n'; +} + +void ClapTrap::takeDamage(unsigned int amount) { + std::cout << B_CYAN "[" B_PURPLE "h,e,a" B_CYAN ":" B_BLUE << _hit << "," << _energy << "," << _attack << B_CYAN "->"; + + _hit -= amount; + + std::cout << B_BLUE << _hit << "," << _energy << "," << _attack << B_CYAN "]" RESET + << " ClapTrap " << _name + << " looses " B_YELLOW << amount << RESET + << " points of damage :/" << '\n'; +} + +void ClapTrap::beRepaired(unsigned int amount) { + std::cout << B_CYAN "[" B_PURPLE "h,e,a" B_CYAN ":" B_BLUE << _hit << "," << _energy << "," << _attack << B_CYAN "->"; + + _energy--; + _hit += amount; + + std::cout << B_BLUE << _hit << "," << _energy << "," << _attack << B_CYAN "]" RESET + << " ClapTrap " << _name + << " repaired itself and gained " B_YELLOW << amount << RESET + << " points of life :)" << '\n'; +} diff --git a/d03/ex00/ClapTrap.hpp b/d03/ex00/ClapTrap.hpp new file mode 100644 index 0000000..d5cb57d --- /dev/null +++ b/d03/ex00/ClapTrap.hpp @@ -0,0 +1,39 @@ +#ifndef CLAPTRAP_HPP +# define CLAPTRAP_HPP + +#include +#include +#include + +class ClapTrap { + +public: + + ClapTrap( std::string name ); // default/parametric constructor + ClapTrap( ClapTrap const & src ); // copy constructor + ~ClapTrap( void ); // destructor + + ClapTrap & operator=( ClapTrap const & rhs ); // assignement operator + + void attack(const std::string & target); + void takeDamage(unsigned int amount); + void beRepaired(unsigned int amount); + + std::string getName() const; + int getHit() const; + int getEnergy() const; + int getAttack() const; + +private: + + ClapTrap( void ); // default/parametric constructor + + std::string const _name; + int _hit; + int _energy; + int _attack; + +}; + +#endif + diff --git a/d03/ex00/Makefile b/d03/ex00/Makefile index 9708dcd..930ba65 100644 --- a/d03/ex00/Makefile +++ b/d03/ex00/Makefile @@ -16,10 +16,11 @@ LIBS = INCLUDES = -I$(D_HEADERS) D_SRCS = . -SRCS = main.cpp +SRCS = main.cpp \ + ClapTrap.cpp D_HEADERS = . -HEADERS = +HEADERS = ClapTrap.hpp D_OBJS = builds OBJS = $(SRCS:%.cpp=$(D_OBJS)/%.o) diff --git a/d03/ex00/action b/d03/ex00/action new file mode 100755 index 0000000000000000000000000000000000000000..eadfc6c2d4d7259bba377d1d052e29d086f18acc GIT binary patch literal 19272 zcmeG^ZE#dombbeDgb_mXp~jCH9!}6OLen83M$z$gl7<%zkR`yP3_d!YPSVmz$L`k{ zsLc#6YSG4w8AoO)Ew`wxo!P8AyRtj#G8P|UVGZlA2)nb?OsTBp$BWA_8AWAXwfCI+ z?s2ccCX*yXku1WSdS2O#PV3;wWM1q^W&0lS`mXCd_vA?js| zDyjlrAy9%|3rD>vSQR+)s)zxua`4d%4j4g_v)fZFK2ubyB48ai${0ae4}CMX#1bF7 z!_p&YigB0HU_`%=jCvD7Z$ju1WI~T1`4i3H=Y-&&aI1hJt|DNK{5uO#7E8-JMmyF` z1u=wb4m`v$#t4$$pMW0r^Y<;}_I0AYVt(<9{u88mUmAqa|4b42zbex1u_E#~_X>QRWe3R5 zX4kM0Rpl%%*v0Y$*%#}eMP)1^=&FOxAU=~ud-&#?F(zx7u6K6Fd-S9cN*KD%^m|*4 zShA_rsHzHgg%Y}v2t|!#Q#cr02ej(8P%;|U<4GeC33WGx*XzO7<$9QF-D*S<-O-+q z5!p^w!ue)eLq%+@*Vp^O+AaFJyVtZDx9EDfudk}AYMIp{G#KsaY-+91p}qB0dN2rW ztZ9wMlEJ85yPwyvfySyJcA~hUqCIQ)Lo{3N4zIhrwHmz$P1i-^NgcW$scGto8djHJ zR3W`B(i!d1!yzNwh3@a`(|aR{WV|O7iyAxh?S6Y0e^6(jCpDKhpD>IRx|YD-6!^Hs zAL3Y_3Lo4yQ3ftQUT~=$1ca{BmK%4#4nCEg76QnBPU5GojZViM{ns|%!xwAXXCAot zW8jpq_k_;r=eI$V9`>=ojYUtw*6C(0T==0(+^KSiYyWIsv%W4$ba_3d^#aF%`v#SA zRpr%b@GX`Sjw=!!x?q<|i7vXrd47pbdoD8SBs#WDMV09CzN|@f>=Tt1iB9(r$lD~* z!NGRfD$&1YQyJ@$=yc14>|Tj3ZmqahpG2Q2+1Vx0aWAK`N1~Sz5#W$SpC!@vNpy+@ zWbc>gS4#4e)kzObdSKE6f25lgA#eO_2Fk);A&y(!_!!4eA?`+egyXLwj$7OK0gnGO;<%-a@8|f- zh~ri^KE&~VL>#xU@m(B$4sqPN#(O#bmx$w*HNKVOPa}?7)p!fXpF|wDsBx9!k0Fj* z)3~4Ge~vhAN#hE~cOs5k(YTl63B+-$8D|{7AMsg;PkaG{g>8uA)-ryUf_8)$+RF#ThGf1ET3e3Kn*T7@Kz;L{KnqEYj9Kb6}pYJOw8Z z7lu&&c!!U=H+1kI^jo_Fzm2&EvC9}T(~lw{bGBpXct=(koZ*$FOqWy)NjxV9Y6YY*lB>#=Mfxc?qH zhxcNm!OwVq2mAMH>BBhLrVo6j4eZ7GkrD+4HrPLG{^IjYW?V>~)CN<-=6evnL>V?0 zN&NlhX27(;!*w_@>BFUH^$d~*_G10W72N7!3`KKmR`KvwlplPN)AwY}TY{sX**)Nf z&5wZqjg(tTsB8W(tJDv@d=Yu(-)D(j*zC_*>OW~_+>E72aJ^4O$x0(yRBSgHMesobZ~Kenm^C_N7-p z#XbGz|A>B2tNYCv*x{2-^>5~@Tb_E>VZn0OC{lZ!Mw$v3;a=Nh8@Ulh2EkK%p)wHs zOnc}AM$VSwIfJ>1OIgE>L7n%WhH%onCzmwPzt4OLTF}y?CN3-4*u?9j#eDfwn7E(7 zSN3|}ea@?;`!8w({TIy@sJi=vS6&Zf{xhJN&-ZivbZP=^K>dvQA<7N(pV0M+OdANAX-(mjR*6!!r=F$W_nd zR~F_={)KT(m^b}5`Yt#zsw%j#jH(qDsD#*HWGh|Hp*rcb5x+&jx3i2D$Jke3CxoPD$Peopq`re@Dnk( zwM6+(qzt4?48ngQ?!Cl4E-2{bzb0;kxIZB-dalyEikiEN1Rf@p2Z@rfC`WLr%|{T) z3rC74F@NdQ1(+IZ-X*Wu)2GOtP|P1tllJswKDNfp=eNS_%@cS-7N|7Wl7KyZhfx64 zH(VIdltr)M)h2btp1{4bA;p|ZhU~5wvOtCTjzF_B+$sxHnkPuWp1@^9u_sVLikQF> z;yy z*x3WO{Cxl~0vrK|h0erXJJ&H+pVxKWjA^Aq&^8`KTo0d0=rcYfv&Ly&r1`N5G(1?r zQUM>hU19$7&^ORyW!{x#<#)}x;=$5g?9OXfe5<~m03QjxpuZR^PW!gF!-s|L;b~m;0JyGB#gOaq(ZgZ@YK7(N?^uR zFYm_%G<1o6%!6@^eUQmqhjP@9joE(Gd4zC&P--}5sUN?`wMfWH-D5aT4v zAF%oBfj@P%D?XkmMMcJ!LrK7r!f`Piqa|#gXUO%~6xVPGTrFox=0o+95(p-A2bPTI8kd(XWNhJ- zpNqz5KFFzJCw5B$G-U~G=c`!FQlPdqE&enF>u8z;O~hc)TXEi;Egb=)CoSG&SIGFJg{(MttR{nmusbOEV-_<@m+XHTi64?mu8ocaNeK^)&G_(J{v4A}3L zJ6f#uTK!!q;6?#E1l%s*qXPa&z@G~El7O!W_)7ub74TyLr;7NzO28WhtQByjfR66r z%Zaxsl^fbpJw{5Y^84UL#U)iKj#hnlncwHHStQ6z2!&%IIDps=uY^Y9JxbLw9|$d} z&QbBzIGf4A@eRXax0*vk1m9vj;a0JlQ#`;i-D(aE5qvX};#+2VAlfOebLms<_|K(J zV};_z16LEpTdw?cMsb@<|C$}&xpcUi#60EFXE3E8eI{!uFkc>4#%O)WwKI#^`4kev z15bODhai!`Z?oC(0#zpQx(D8r$72L%@xYszv<}HU51gjZ`jbn)k`=lhJaB46?}z5f z!|EW`kz9H?8!kxCzGt2*Ppe{QI1-6^bWVG(nI(ReCU9c+C zizi~4W48%;nlF9^0kj9;Q>fh*pkqb?KIY4%4G?UX_8Dip^n!}B-Tfj?sNL^^okH!V zg?+!+zo_j2LEq}2|AnB_en;{zKn49U7En2f`ZL1m`SI``&~aR}pK>Mm`jE@#$5pZZ z&w++q5Vwa4#Al)LD!gO)@n6mD|V>A|CK;5zF@g&UTlx1FFh#`g&Z*AGp$@(|yXbfDh&OHkU!vkxFWpwo5z9H$Fq3ETzs zIc``j9Q()#kjMFQ#@kpCJ9A;Yh4Od4#r+^PD5`-X^e2IS1I)`VF|o}3A&IgPwj#6I4*qCbZm@itq~opE>r(9yor4?ZrR(jJBTdT>o6Ca&p_EvW}JLDU-8F}?AgHG$Pl z4Zy=8+sf^^1fKe4kACgSm90TYMhnz82YDh_9XX=b`kgR%sRXs6d1a8V7HJO|Axx~g z+ctS?XT%8hL=v4lc)nVzAtlkND$i%Ka+sLjv=&mH+97W&m5ks39EoJADy2AGZsr?L z8Ov!GbEkNY6--|;u6Mz&n6U_s!5#vo+S!CEe_Ldo`0+DnrQ{V$=PT+hG@92Bxz$iB zOhYToPkT&HL}GDBri)-om;u>|y;0~P_m7n^CJc$hFp=O`wCMtAj$bu3@sd5S@*AOT zkw*SovgMv^IMhNoXi-DN!dFehgtWb!mUE^FlJ_i!$>Dbkw6_MXxBBHg+0x3Hv?sD* zS@1FvD6PayO2Tw>NMFCYfv(rfNi=ns0~0)>&`GuuL+{Tgf8{^~w^34Ojy1e4Aja@X z9TGWXG2Kpn1u|aeR(>K*LD6K^q9KThmieto*Bs0YPj9uSs*w})wq#OnH#Y$_&nonk zXHtffDQin8l#80TuJDxGoZdO(47!$+$O*zCK@+`!k#Whc;FgeUa+wHSXX2;m1zp(A zL}tf28{ltwSdJ@{oO{VJUB)a18S^D~bi-Z^&`4OYi)!#vNhHzBd_8d^;_K{5`Px!Z z_@4pMc0qz{)g?x#lW|^GDA~n)?K^tFo&}AB#Sy1OIfxECSQA62AZooagZcQj?}H>- zsB z?ghGGi!X48^wmiC`~$bN@XTu!I_IMQ&q3$3g3V>Aj_{lCfmSoBR~`-eLAn!#EmbVPYdxp|J?@+JR2r`I@jAM8d@wA={}m| z2yO#Do;4Fr=YM;I{w|@9{l|V%{{@-tgbMnU^y!?iR2*n)LXg@geH#D6LcdnkSBJ};pl!_q3GnQ4J0wC+t zxmb%h*w{-CghHP51j?Rv=+k+pDJ~rPorL6_@w;E>lmG2=QN_}D*8=vpQ-2sZ*niTe z^HWo?R1R6d{&woW1RPnP&RK^SSSsb>Iv@iye}s=fMb@YD*pUiLqK^axbhdvA=$IWt z&Ct0O{ht_$GcrT%6MO?0aEfH>)A_C`4k$>jnEv~~plbtV=p2~-4-Yw(;*;!A99ZXq z+4kwYctRY&kX*6$F9HMoN8`88mHn2+FewU1?Gwa*;Uw$RdBw2MFV;Spod(Kii`pMi zRn9sn^vlt>R8*;s)fu9FA#QU?f0IqIDr8QE6uYvhx5~mM#5#hP({lLGxG64>O?|gC f#P